[英]Query using CASE WHEN
我试图写这样的查询,我收到一个错误。 这是我第一次使用案例,所以我认为问题就在于此。
UPDATE my_table
CASE
WHEN downloads IS NULL THEN
SET downloads = 1
ELSE
SET downloads + 1
END
WHERE attachment_id = 8990
AND parent_post_id = 9221
OR attachment_id = 9211
AND parent_post_id = 383
你可以重写如下
UPDATE my_table
SET downloads = CASE WHEN downloads IS NULL THEN 1
ELSE downloads + 1 END
WHERE attachment_id = 8990
AND (parent_post_id = 9221
OR attachment_id = 9211 )
AND parent_post_id = 383
您还需要您的组or
条件()
以配合9211
对parent_post_id
和attachment_id
使用或操作,也有混乱的状况下,你有你的查询如何parent_post_id
和attachment_id
可以等于2倍的值,在同一时间可能是你正在找
WHERE (attachment_id = 8990 AND parent_post_id = 9221 )
OR (attachment_id = 9211 AND parent_post_id = 383)
update
s语法是update table set col=value where condition
。 使用case
不会改变这一点。 case
只能用于返回表达式,所以:
UPDATE my_table
SET downloads = CASE WHEN downloads IS NULL THEN 1 ELSE downloads + 1 END
WHERE attachment_id = 8990 AND
parent_post_id = 9221 OR
attachment_id = 9211 AND
parent_post_id = 383
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.