或内部case语句未在mysql中运行
我有一个查询,在case语句中我放了一个or语句 由于某种原因,or语句未运行 例如—或内部case语句未在mysql中运行,mysql,sql,sql-update,Mysql,Sql,Sql Update,我有一个查询,在case语句中我放了一个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。在与null进行比较时,使用is操作符。因为在使用普通运算符时,将某些内容与NULL进行比较将
update shouts set visibility=(case when (visibility = null or visibility =1)
then 2 else 1 end) where shout_id = 788
现在,当可见性为null时,它应该更新2,而不知道为什么它会将字段更新为1。在与
null
进行比较时,使用is
操作符。因为在使用普通运算符时,将某些内容与NULL
进行比较将导致未知,这是不正确的
与
NULL
进行比较时,请使用IS
运算符。因为在使用普通运算符时,将某些内容与NULL
进行比较将导致未知,这是不正确的
与
NULL
进行比较时,请使用IS
运算符。因为在使用普通运算符时,将某些内容与NULL
进行比较将导致未知,这是不正确的
与
NULL
进行比较时,请使用IS
运算符。因为在使用普通运算符时,将某些内容与NULL
进行比较将导致未知,这是不正确的
我想指出,您可以简化逻辑:
update shouts
set visibility = (case when visibility <> 1 then 1 else 2 end)
where shout_id = 788;
更新喊声
设置可见性=(可见性为1时为1,其余为2时为结束)
其中shout_id=788;
甚至:
update shouts
set visibility = 2 - (visibility <> 1)
where shout_id = 788;
更新喊声
设置可见性=2-(可见性1)
其中shout_id=788;
不过,Juergen的方法是解决特定问题的正确方法。我想指出,您可以简化逻辑:
update shouts
set visibility = (case when visibility <> 1 then 1 else 2 end)
where shout_id = 788;
更新喊声
设置可见性=(可见性为1时为1,其余为2时为结束)
其中shout_id=788;
甚至:
update shouts
set visibility = 2 - (visibility <> 1)
where shout_id = 788;
更新喊声
设置可见性=2-(可见性1)
其中shout_id=788;
不过,Juergen的方法是解决特定问题的正确方法。我想指出,您可以简化逻辑:
update shouts
set visibility = (case when visibility <> 1 then 1 else 2 end)
where shout_id = 788;
更新喊声
设置可见性=(可见性为1时为1,其余为2时为结束)
其中shout_id=788;
甚至:
update shouts
set visibility = 2 - (visibility <> 1)
where shout_id = 788;
更新喊声
设置可见性=2-(可见性1)
其中shout_id=788;
不过,Juergen的方法是解决特定问题的正确方法。我想指出,您可以简化逻辑:
update shouts
set visibility = (case when visibility <> 1 then 1 else 2 end)
where shout_id = 788;
更新喊声
设置可见性=(可见性为1时为1,其余为2时为结束)
其中shout_id=788;
甚至:
update shouts
set visibility = 2 - (visibility <> 1)
where shout_id = 788;
更新喊声
设置可见性=2-(可见性1)
其中shout_id=788;
Juergen's是解决特定问题的正确方法,尽管如此。Try
visibility IS null
yup有时混淆更新应为=null,查询应为IS null
Tryvisibility IS null
yup有时混淆更新应为=null,查询应为IS null
Tryvisibility IS null
yup有时混淆更新应为=null,且查询应该是is null
Tryvisibility is null
是的,更新应该是=null,查询应该是is null
欣赏第一个代码。对于第二个,有一个混淆,当可见性为2时,2-2=0,当可见性为null时,2-null将给出2。@PradyutBhattacharya。表达式visibility 1
是一个布尔表达式。如果为true,则其值为1
,如果为false,则将其视为0
。请欣赏第一个代码。对于第二个,有一个混淆,当可见性为2时,2-2=0,当可见性为null时,2-null将给出2。@PradyutBhattacharya。表达式visibility 1
是一个布尔表达式。如果为true,则其值为1
,如果为false,则将其视为0
。请欣赏第一个代码。对于第二个,有一个混淆,当可见性为2时,2-2=0,当可见性为null时,2-null将给出2。@PradyutBhattacharya。表达式visibility 1
是一个布尔表达式。如果为true,则其值为1
,如果为false,则将其视为0
。请欣赏第一个代码。对于第二个,有一个混淆,当可见性为2时,2-2=0,当可见性为null时,2-null将给出2。@PradyutBhattacharya。表达式visibility 1
是一个布尔表达式。如果为true,则其值为1
,如果为false,则将其视为0
。