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
comma separated string of selected values in mysql
提问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 SEPARATOR
as 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_concat
method in mysql
group_concat
mysql中的使用方法
回答by star18bit
Just so for people doing it in SQL server: use STRING_AGG
to get similar results.
对于在 SQL Server 中执行此操作的人来说也是如此:用于STRING_AGG
获得类似的结果。