我有一个存储过程,它将返回一个id列表。我想将该列表作为逗号分隔的字符串返回,即“1,2,3,4,5”。
我知道我可以使用游标执行此操作,但有更简单的方法将结果集转换为扁平字符串吗?
答案 0 :(得分:13)
MySQL有group_concat() aggregate function:
SELECT group_concat(some_column) FROM mytable;
将返回逗号加入的表中的所有some_column
值。
警告:请注意结果受group_concat_max_len
系统变量的限制,该变量默认只有1024个字节!为避免触及此墙,您应在运行查询之前执行此操作:
SET SESSION group_concat_max_len = 65536;
或更多,取决于您期望的结果数量。但是此值不能大于max_allowed_packet
答案 1 :(得分:1)
select group_concat(id) from table
http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html#function_group-concat
答案 2 :(得分:-2)
你应该在外部代码中进行格式化。