【发布时间】:2020-01-06 17:21:14
【问题描述】:
我正在尝试使用 JSON_ARRAYAGG(JSON_OBJECT()) 将查询结果作为 JSON 对象输出(效果很好)。我不能在 JSON_OBJECT 命令中使用 DISTINCT 并且使用 GROUP BY 不会将整个结果输出为一个 JSON,而是输出尽可能多的行(然后是一个 JSON)。示例:
SELECT JSON_ARRAYAGG(JSON_OBJECT(\'id\', `id`, ...)) FROM table
效果很好,但不会过滤掉重复项。我试过了:
SELECT JSON_ARRAYAGG(JSON_OBJECT(\'id\', `id`, \'title\', DISTINCT(`title`), ...)) FROM table
还有:
SELECT JSON_ARRAYAGG(JSON_OBJECT(\'id\', `id`, \'title\', `title`, ...)) FROM table GROUP BY `title`
但前者是错误的(语法方面),后者将结果拆分为多行。有人可以解释我如何实现这一目标吗?喜欢:
SELECT JSON_ARRAYAGG(JSON_OBJECT(\'id\', `id`, ...)) FROM table
但只有独特的结果。
【问题讨论】:
-
MYSQL 最后我做了一个普通但更复杂的sql查询,并用服务器语言而不是直接使用SQL进行JSON转换。