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)
首先到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)
试试这个
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)
使用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)
组中值之间的默认分隔符是逗号(,)。要指定任何其他分隔符,请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