MySQL mysql中选定值的逗号分隔字符串

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/19558443/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-31 19:13:07  来源:igfitidea点击:

comma separated string of selected values in mysql

mysqlselectcomma

提问by Karunakar

I want to convert selected values into a comma separated string in MySQL. My initial code is as follows:

我想在 MySQL 中将选定的值转换为逗号分隔的字符串。我的初始代码如下:

SELECT id FROM table_level where parent_id=4;

Which produced:

其中产生:

'5'
'6'
'9'
'10'
'12'
'14'
'15'
'17'
'18'
'779'

My desired output would look like this:

我想要的输出如下所示:

"5,6,9,10,12,14,15,17,18,779"

回答by naveen goyal

Check this

检查这个

SELECT GROUP_CONCAT(id)  FROM table_level where parent_id=4 group by parent_id;

回答by Sanal K

If you have multiple rows for parent_id.

如果 parent_id 有多行。

SELECT GROUP_CONCAT(id) FROM table_level where parent_id=4 GROUP BY parent_id;

If you want to replace space with comma.

如果你想用逗号替换空格。

SELECT REPLACE(id,' ',',') FROM table_level where parent_id=4;

回答by Nishu Tayal

Use group_concat()function of mysql.

使用mysql 的group_concat()函数。

SELECT GROUP_CONCAT(id) FROM table_level where parent_id=4 GROUP BY parent_id;

It'll give you concatenated string like :

它会给你连接的字符串,如:

5,6,9,10,12,14,15,17,18,779 

回答by cksahu

First to set group_concat_max_len, otherwise it will not give you all the result:

首先到set group_concat_max_len,否则它不会给你所有的结果:

SET GLOBAL  group_concat_max_len = 999999;
SELECT GROUP_CONCAT(id)  FROM table_level where parent_id=4 group by parent_id;

回答by Ankit Sharma

Try this

尝试这个

SELECT CONCAT('"',GROUP_CONCAT(id),'"') FROM table_level 
where parent_id=4 group by parent_id;

Result will be

结果将是

 "5,6,9,10,12,14,15,17,18,779"

回答by Rohan Khude

The default separator between values in a group is comma(,). To specify any other separator, use SEPARATORas shown below.

组中值之间的默认分隔符是逗号(,)。要指定任何其他分隔符,请SEPARATOR按如下所示使用。

SELECT GROUP_CONCAT(id SEPARATOR '|')
FROM `table_level`
WHERE `parent_id`=4
GROUP BY `parent_id`;

5|6|9|10|12|14|15|17|18|779

5|6|9|10|12|14|15|17|18|779

To eliminate the separator, then use SEPARATOR ''

要消除分隔符,然后使用 SEPARATOR ''

SELECT GROUP_CONCAT(id SEPARATOR '')
FROM `table_level`
WHERE `parent_id`=4
GROUP BY `parent_id`;

Refer for more info GROUP_CONCAT

更多信息请参考GROUP_CONCAT

回答by hepizoj

Use group_concatmethod in mysql

group_concatmysql中的使用方法

回答by star18bit

Just so for people doing it in SQL server: use STRING_AGGto get similar results.

对于在 SQL Server 中执行此操作的人来说也是如此:用于STRING_AGG获得类似的结果。