美文网首页
mysql数据库group_concat和json_object

mysql数据库group_concat和json_object

作者: leon12138 | 来源:发表于2020-03-28 02:44 被阅读0次
  • 有时候对数据需要合并,并且以json格式输出,所以想到了使用聚合函数 group_concat,具体代码如下:
SELECT
    shop_shopname,
    shop_mobile,
    CONCAT(
        '[',
        GROUP_CONCAT(
            '{order_no:"',
            order_no,
            '",pay_money:"',
            pay_money,
            '"}'
        ),
        ']'
    ) AS order_list
FROM
    `order`
GROUP BY
    shop_id
-- 查询order表,并且根据shop_id对数据进行合并,合并后的字段设置为json格式,字段名为order_list

运行结果

运行结果.png

使用json_object优化

  • mysql5.7以后的版本新增了对json的支持,可以快捷的操作json数据,直接执行以下查询就行了
SELECT
    shop_shopname,
    shop_mobile,
concat('[', 
    GROUP_CONCAT(
        JSON_OBJECT(
            'order_no',
            order_no,
            'pay_money',
            pay_money
        )
    ) 
,']' )  AS order_list
FROM
    `order`
GROUP BY
    shop_id

运行结果

运行结果2.png
  • 和自己拼接json字符串的区别是,这样的来的json字符串更加严格,并且出bug的概率更小,自己拼接的json串容易漏掉符号,导致格式错误

相关文章

网友评论

      本文标题:mysql数据库group_concat和json_object

      本文链接:https://www.haomeiwen.com/subject/tbmduhtx.html