Ste*_*one 5 mysql arrays group-concat
在 MySQL 5.7 中,我们有 JSON_ARRAY 对象。我想执行类似于 a 的操作SELECT GROUP_CONCAT(field),但将结果放入 JSON_ARRAY 中。
我当前的查询是:
SELECT GROUP_CONCAT(name) FROM users;
Run Code Online (Sandbox Code Playgroud)
结果:约翰、迈克尔、索菲亚
我希望结果是: ["john","michael","sofia"]
我当前的解决方案是:
select @j:=json_array_append(@j,'$',name) from users
Run Code Online (Sandbox Code Playgroud)
但这非常低效,因为它会为每一行重新计算。是否有可能更有效地实现这一目标?
您可以使用它JSON_ARRAY来实现您想要的:
SELECT JSON_ARRAY(GROUP_CONCAT(name SEPARATOR ',')) AS names FROM users;
Run Code Online (Sandbox Code Playgroud)
像这样,它可以让您获得所需的结果,而不必重新计算每一行。