我有一个查询,在案例语句中放入了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/

10-12 15:07