MySQL如何选择进入JSON数组
在MySQL 5.7中,我们有JSON_数组对象。我希望执行类似于MySQL如何选择进入JSON数组,mysql,arrays,group-concat,Mysql,Arrays,Group Concat,在MySQL 5.7中,我们有JSON_数组对象。我希望执行类似于selectgroup\u CONCAT(field)的操作,但将结果放入JSON\u数组中 我目前的查询是: SELECT GROUP_CONCAT(name) FROM users; 结果:约翰、迈克尔、索菲亚 我希望结果是:[“约翰”、“迈克尔”、“索菲亚”] 我目前的解决办法是: select @j:=json_array_append(@j,'$',name) from users 但这是非常低效的,因为它是为每一行
selectgroup\u CONCAT(field)
的操作,但将结果放入JSON\u数组中
我目前的查询是:
SELECT GROUP_CONCAT(name) FROM users;
结果:约翰、迈克尔、索菲亚
我希望结果是:[“约翰”、“迈克尔”、“索菲亚”]
我目前的解决办法是:
select @j:=json_array_append(@j,'$',name) from users
但这是非常低效的,因为它是为每一行计算的。有可能更有效地实现这一点吗?您可以使用
JSON\u数组来实现您想要的:
SELECT JSON_ARRAY(GROUP_CONCAT(name SEPARATOR ',')) AS names FROM users;
这样,您就可以获得所需的结果,而无需重新计算每一行。您可以使用
JSON_ARRAYAGG
示例如下:
不适用于特殊字符