作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这里是场景,将用户 ID 添加到 user_details
中。如果 external_id
不存在于配置文件表中并且返回 null
(select 语句返回 null
)怎么办?
JSON_ARRAY_APPEND
如何拒绝查询并且不添加到 user_details
JSON 列。
UPDATE column1 SET user_details= JSON_SET(user_details, "$.ids", IFNULL(user_details->'$.ids',JSON_ARRAY())),
user_details= JSON_ARRAY_APPEND(user_details, "$.ids", (Select id from column2 where external_id='999999999999999'))
where id = 880;
谢谢
最佳答案
在 UPDATE
语句的 WHERE
子句中检查这一点。
UPDATE column1 SET user_details= JSON_SET(user_details, "$.ids", IFNULL(user_details->'$.ids',JSON_ARRAY())),
user_details= JSON_ARRAY_APPEND(user_details, "$.ids", (Select id from column2 where external_id='999999999999999'))
where id = 880
AND EXISTS (Select id from column2 where external_id='999999999999999')
或者使用JOIN
而不是嵌套子查询。
UPDATE column1 AS c1
CROSS JOIN column2 AS c2
SET user_details= JSON_SET(c1.user_details, "$.ids", IFNULL(c1.user_details->'$.ids',JSON_ARRAY())),
c1.user_details= JSON_ARRAY_APPEND(c1.user_details, "$.ids",c2.id)
WHERE c1..id = 880
AND c2.external_id = '999999999999999'
关于mysql - JSON_ARRAY_APPEND() 如果目标值为空则拒绝 Mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59534964/
这里是场景,将用户 ID 添加到 user_details 中。如果 external_id 不存在于配置文件表中并且返回 null(select 语句返回 null)怎么办? JSON_ARRAY_
到底如何将数据插入 json mysql 字段。 我可以创造一个记录 INSERT INTO git_object (user_id,git_meta,last_update) VALUES ('11
我是一名优秀的程序员,十分优秀!