【问题标题】:MySQL how to select into JSON ARRAYMySQL如何选择成JSON ARRAY
【发布时间】:2017-03-31 15:59:16
【问题描述】:

在 MySQL 5.7 中,我们有 JSON_ARRAY 对象。我想执行类似于SELECT GROUP_CONCAT(field) 的操作,但将结果放入 JSON_ARRAY。

我目前的查询是:

SELECT GROUP_CONCAT(name) FROM users;

结果:约翰、迈克尔、索菲亚

我希望结果是:["john","michael","sofia"]

我目前的解决方案是:

select @j:=json_array_append(@j,'$',name) from users

但这非常低效,因为它是针对每一行重新计算的。是否有可能更有效地实现这一目标?

【问题讨论】:

    标签: mysql arrays group-concat


    【解决方案1】:

    你可以使用JSON_ARRAY来实现你想要的:

    SELECT JSON_ARRAY(GROUP_CONCAT(name SEPARATOR ',')) AS names FROM users;
    

    这样就可以让你得到想要的结果,而不必为每一行重新计算。

    【讨论】:

      【解决方案2】:

      你可以使用 JSON_ARRAYAGG 这里的例子:

      https://github.com/AndreyMashukov/mysql-json-serializer

      【讨论】:

        猜你喜欢
        • 2021-03-28
        • 1970-01-01
        • 1970-01-01
        • 2012-03-17
        • 1970-01-01
        • 2011-01-23
        • 2020-01-09
        • 1970-01-01
        相关资源
        最近更新 更多