gpt4 book ai didi

Mysql - 更新+插入json

转载 作者:行者123 更新时间:2023-11-29 05:52:07 26 4
gpt4 key购买 nike

我得到了一个包含 JSON 字段的表。该字段的默认值为 "NULL" - 现在我想更新 JSON 数据的单个字段。

   | ----------------- |
| [int] | [JSON] |
| xy | ipdata |
| ----------------- |

所以字段可能是这样的:

{ ip: "233.233.233.233", "data": "test", "name": "Peterson", "full_name": "Hanson Peterson" }

所以我想更新IP。

update table set ipdata = JSON_SET(ipdata, "$.ip", "newIp") where xy = 2;

但是如果字段为 NULL 会发生什么?上面的查询似乎并没有“创建”一个只有 IP 字段的新 JSON。它什么都不做。


如果字段为空,我如何告诉 mySql 插入 {"ip": "newIp"},否则只更新 ip json 键?

最佳答案

您可以使用Case .. When 来处理Null。当该字段为 null 时,您可以改为创建 Json_object()并设置它:

UPDATE table 
SET ipdata = CASE WHEN ipdata IS NULL THEN JSON_OBJECT("ip", "newIp")
ELSE JSON_SET(ipdata, "$.ip", "newIp")
END
WHERE xy = "xy";

关于Mysql - 更新+插入json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53060739/

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