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

Posted

技术标签:

【中文标题】mysql中选定值的逗号分隔字符串【英文标题】:comma separated string of selected values in mysql 【发布时间】:2013-11-02 17:14:27 【问题描述】:

我想在 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"

【问题讨论】:

【参考方案1】:
SELECT GROUP_CONCAT(id) as ids FROM table_level where parent_id=4 group by parent_id;

【讨论】:

【参考方案2】:

使用 GROUP_CONCAT,这是使其灵活的另一种方法:

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

这将返回值:

"181","187","193","199","205","211","217","223","229","235","239","243","247","251"

您可以使用任何其他分隔符进行连接。如果您想在某处直接使用返回值,这将有所帮助。

【讨论】:

【参考方案3】:

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

【讨论】:

【参考方案4】:

先到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】:

如果 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;

【讨论】:

去 GROUP_CONCAT :)【参考方案6】:

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

在mysql中使用group_concat方法

【讨论】:

是否返回字符串?? @Karunakar,我在这里收到blob【参考方案8】:

试试这个

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"

【讨论】:

【参考方案9】:

使用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 

【讨论】:

【参考方案10】:

检查一下

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

【讨论】:

以上是关于mysql中选定值的逗号分隔字符串的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Java 中解析前 4 个值的分隔符逗号分隔字符串

解析具有括号和逗号分隔值的字符串

如何将包含逗号分隔的 json 值的单个字符串转换为单个 json 对象?

如何在 MySQL 字段中选择逗号分隔值的唯一值?

MYSQL查询某字段中以逗号分隔的字符串的方法

sql SQL - 在以逗号,管道或分号或任何其他字符分隔的列中获取多个值或连接值的值