如何用group-concat mysql创建json格式?
(我使用 MySQL)
示例 1:
表1:
email | name | phone
-------------------------------------
my1@gmail.com | Ben | 6555333
my2@gmail.com | Tom | 2322452
my2@gmail.com | Dan | 8768768
my1@gmail.com | Joi | 3434356
类似于不给我格式的语法代码:
select email, group-concat(name,phone) as list from table1
group by email
我需要的输出:
email | list
------------------------------------------------
my1@gmail.com | {name:"Ben",phone:"6555333"},{name:"Joi",phone:"3434356"}
my2@gmail.com | {name:"Tom",phone:"2322452"},{name:"Dan",phone:"8768768"}
谢谢
最佳答案
使用较新版本的 MySQL,您可以使用 JSON_OBJECT 函数来实现所需的结果,如下所示:
GROUP_CONCAT(
JSON_OBJECT(
'name', name,
'phone', phone
)
) AS list
要准备好将 SQL 响应解析为数组:
CONCAT(
'[',
GROUP_CONCAT(
JSON_OBJECT(
'name', name,
'phone', phone
)
),
']'
) AS list
这会给你一个类似的字符串:[{name: 'ABC', phone: '111'}, {name: 'DEF', phone: '222'}]
可以是JSON 已解析。希望这会有所帮助。
关于mysql - 如何使用 group-concat mysql 创建 json 格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12511933/