我需要函数,它返回字符串列表。
我的表格数据如下:
Id MyString
------------------------
1 First
2 Second
3 Third
4 Fourth
我需要这样的功能(这样的东西在oracle中有效):
select LISTAGG(MyString, ', ') as myList where id < 4
返回类似这样的内容:
myList
------------------------
First, Second, Third
有什么想法吗?
答案 0 :(得分:39)
您正在寻找GROUP_CONCAT()
试试这个:
select group_concat(MyString separator ', ') as myList from table
where id < 4
当然,您可以group by
结果。
答案 1 :(得分:1)
从MySQL 5.7.22开始,您还可以使用两个JSON聚合函数:JSON_ARRAYAGG或JSON_OBJECTAGG。您可以将它们与MySQL's JSON functions结合使用,以将结果汇总为JSON。与GROUP_CONCAT
不同,除了max_allowed_packet
(会影响所有查询)之外,没有MySQL配置参数会限制返回值的大小。