mysql-更新+插入json

aiazj4mn  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(552)

我得到了一个包含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;

但是如果字段为空会发生什么呢?上面的查询似乎并不只是用ip字段“创建”一个新的json。它什么都不做。
如何让mysql插入 {"ip": "newIp"} 如果字段为空,则只需更新 ip json密钥?

djmepvbi

djmepvbi1#

你可以用 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";

相关问题