我有一个查询,在案例语句中放入了or语句。
or语句由于某种原因未运行。
这个例子 -
update shouts set visibility=(case when (visibility = null or visibility =1)
then 2 else 1 end) where shout_id = 788
现在,当可见性为null时,它应该更新2,而出于未知原因,它将字段更新为1。
最佳答案
与IS
进行比较时,请使用NULL
运算符。因为在使用常规运算符时将与NULL
进行比较会导致未知,这是不正确的。
update shouts
set visibility = case when visibility IS null or visibility = 1
then 2
else 1
end
where shout_id = 788
关于mysql - 或内部case语句未在mysql中运行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24723486/