gpt4 book ai didi

mysql - 如何从 MySQL 中的 JSON 中删除空属性

转载 作者:行者123 更新时间:2023-11-29 17:26:24 25 4
gpt4 key购买 nike

我有一个存储 JSON 值的表。在这些 JSON 中,JSON 具有如下所示的 null 属性:

{ 
"name" : "AAAA",
"department" : "BBBB",
"countryCode" : null,
"languageCode" : null,
"region" : "AP"
}

我想编写一个查询,以便从输出中删除所有空属性。例如对于上述 JSON,结果输出 JSON 应该是这样的。

 {
"name" : "AAAA",
"department" : "BBBB",
"region" : "AP"
}

我想要一个通用查询,可以将其应用于任何 JSON,以消除 MySQL (v5.7) 中的 null 属性。

最佳答案

如果您事先不知道所有 key :

  WITH j AS (SELECT CAST('{"a": 1, "b": "null", "c": null}' AS JSON) o)
SELECT j.o, (SELECT JSON_OBJECTAGG(k, JSON_EXTRACT(j.o, CONCAT('$."', jt.k, '"')))
FROM JSON_TABLE(JSON_KEYS(o), '$[*]' COLUMNS (k VARCHAR(200) PATH '$')) jt
WHERE JSON_EXTRACT(j.o, CONCAT('$."', jt.k, '"')) != CAST('null' AS JSON)) removed
FROM j;

输出:

<表类=“s-表”><标题>o已删除 <正文>{“a”:1,“b”:“空”,“c”:空}{“a”:1,“b”:“空”}

这将使您的 key 保持字符串值 "null" ,与 json null 不同.

关于mysql - 如何从 MySQL 中的 JSON 中删除空属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50940629/

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