美文网首页
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