gpt4 book ai didi

mysql - 从 SQL 返回 json 对象数组

转载 作者:行者123 更新时间:2023-11-29 09:45:08 24 4
gpt4 key购买 nike

我是 SQL 新手,所以这可能是一个愚蠢的问题,但我无法弄清楚返回 JSON 对象数组。

我的代码是

SELECT JSON_OBJECT(
'title', pc.title,
'reviews', (SELECT CAST(CONCAT('[',
GROUP_CONCAT(
JSON_OBJECT(
'username',r.uname,
'review',r.review,
'date', r.date_added
)
)
, ']')
AS JSON) FROM reviews r WHERE pc.pid=r.pid)
) AS JSON
FROM product_comp AS pc;

当没有评论时,它会正确返回一个空数组,而当有一个评论时,它会在数组中返回该评论。但如果有多个评论,它会返回一个空数组。我错过了什么?

最佳答案

不要使用 CONCAT 进行格式化 JSON 的容易出错的工作,而是尝试使用 JSON_ARRAYAGG() .

SELECT JSON_OBJECT(
'title', pc.title,
'reviews', JSON_ARRAYAGG(
JSON_OBJECT(
'username', r.uname,
'review', r.review,
'date', r.date_added
)
)
)
FROM product_comp AS pc
LEFT OUTER JOIN reviews AS r ON pc.pid = r.pid
GROUP BY pc.pid

我还没有测试过这个,但它应该给你正确的想法。

关于mysql - 从 SQL 返回 json 对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55815721/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com