gpt4 book ai didi

mysql - JSON_SET 不更新 MySQL 中的空 JSON 字段

转载 作者:行者123 更新时间:2023-11-29 04:36:04 27 4
gpt4 key购买 nike

我有一个可为 null 的 JSON MySQL 5.7 字段,我发现它几乎无法工作。

示例查询:

UPDATE `json_test` SET `data` = JSON_SET(`data`, '$.a', 1)

如果字段数据已经为NULL,则不会更新。

如果它是 { "a": 2 },那么它将正确更新为 1。如果尚未设置,我需要设置它,这是 JSON_SET 应该做的。

知道发生了什么事吗?

最佳答案

1) 在这些情况下,另一种方法是检查 null 并向 JSON_SET 返回一个有效的空 JSON 集 ({}),因此它只放入新数据。

UPDATE json_test SET data = JSON_SET(IFNULL(data,'{}' ), '$.a', 1)

2) 最后,另一种选择是让数据规范具有默认值 {},例如。

`dataJson TEXT DEFAULT '{}',`

我更喜欢我提出的第一个选项,因为我喜欢将字段保留为 NULL,直到我需要它们有数据,然后我希望它们立即开始打包到 JSON 数据中!

关于mysql - JSON_SET 不更新 MySQL 中的空 JSON 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41235535/

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