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

时间:2013-10-24 06:22:55

标签: mysql select comma

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

SELECT id FROM table_level where parent_id=4;

哪个产生了:

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

我想要的输出如下:

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

8 个答案:

答案 0 :(得分:137)

检查

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

答案 1 :(得分:10)

如果parent_id有多行。

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

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

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

答案 2 :(得分:5)

试试这个

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

结果将是

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

答案 3 :(得分:5)

使用mysql的group_concat()功能。

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

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

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

答案 4 :(得分:5)

首先到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;

答案 5 :(得分:2)

在mysql中使用group_concat方法

答案 6 :(得分:1)

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

要删除分隔符,请使用SEPARATOR ''

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

请参阅更多信息GROUP_CONCAT

答案 7 :(得分:0)

对于在SQL Server中执行此操作的用户来说,只需使用STRING_AGG即可获得类似的结果。