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

Kar*_*kar 67 mysql select comma

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

SELECT id FROM table_level where parent_id=4;
Run Code Online (Sandbox Code Playgroud)

哪个产生:

'5'
'6'
'9'
'10'
'12'
'14'
'15'
'17'
'18'
'779'
Run Code Online (Sandbox Code Playgroud)

我想要的输出看起来像这样:

"5,6,9,10,12,14,15,17,18,779"
Run Code Online (Sandbox Code Playgroud)

nav*_*yal 150

检查一下

SELECT GROUP_CONCAT(id)  FROM table_level where parent_id=4 group by parent_id;
Run Code Online (Sandbox Code Playgroud)


小智 10

如果parent_id有多行.

SELECT GROUP_CONCAT(id) FROM table_level where parent_id=4 GROUP BY parent_id;
Run Code Online (Sandbox Code Playgroud)

如果要用逗号替换空格.

SELECT REPLACE(id,' ',',') FROM table_level where parent_id=4;
Run Code Online (Sandbox Code Playgroud)


cks*_*ahu 6

首先到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;
Run Code Online (Sandbox Code Playgroud)


Ank*_*rma 5

试试这个

SELECT CONCAT('"',GROUP_CONCAT(id),'"') FROM table_level 
where parent_id=4 group by parent_id;
Run Code Online (Sandbox Code Playgroud)

结果将是

 "5,6,9,10,12,14,15,17,18,779"
Run Code Online (Sandbox Code Playgroud)


Nis*_*yal 5

使用mysql的group_concat()函数.

SELECT GROUP_CONCAT(id) FROM table_level where parent_id=4 GROUP BY parent_id;
Run Code Online (Sandbox Code Playgroud)

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

5,6,9,10,12,14,15,17,18,779 
Run Code Online (Sandbox Code Playgroud)


Roh*_*ude 5

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

SELECT GROUP_CONCAT(id SEPARATOR '|')
FROM `table_level`
WHERE `parent_id`=4
GROUP BY `parent_id`;
Run Code Online (Sandbox Code Playgroud)

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

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

SELECT GROUP_CONCAT(id SEPARATOR '')
FROM `table_level`
WHERE `parent_id`=4
GROUP BY `parent_id`;
Run Code Online (Sandbox Code Playgroud)

更多信息请参考GROUP_CONCAT