Mysql如何压扁结果集

che*_*rus 4 mysql

我有一个存储过程将返回一个id列表.我想将该列表作为逗号分隔的字符串返回,即"1,2,3,4,5".

我知道我可以使用游标执行此操作但是有更简单的方法将结果集转换为扁平字符串吗?

int*_*tgr 13

MySQL有group_concat()聚合函数:

SELECT group_concat(some_column) FROM mytable;
Run Code Online (Sandbox Code Playgroud)

将返回some_column逗号连接的表中的所有值.

警告:注意结果受group_concat_max_len系统变量的限制,系统变量默认只有1024个字节!为避免碰到此墙,您应该在运行查询之前执行此操作:

SET SESSION group_concat_max_len = 65536;
Run Code Online (Sandbox Code Playgroud)

或者更多,取决于您期望的结果数量.但是这个值不能大于max_allowed_packet