我正在尝试编写这样的查询,但出现错误。这是我第一次使用案例,所以我认为这就是问题所在。
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
您还需要在 ()
中对您的 或
条件进行分组,以便将 9211
与 parent_post_id
和attachment_id
与 or 操作,您在查询中也有令人困惑的条件 parent_post_id
和 attachment_id
可以同时等于 2 个值可能是你在寻找
WHERE (attachment_id = 8990 AND parent_post_id = 9221 )
OR (attachment_id = 9211 AND parent_post_id = 383)
关于mysql - 使用 CASE WHEN 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26195802/