Kor*_* M. 22 php mysql null equals
我只是好奇.我知道NULL安全等于运算符<=>,但是有一些NULL安全NOT等于运算符,或者我必须总是使用类似的东西:
(tab.id != 1 OR tab.id IS NULL)
Run Code Online (Sandbox Code Playgroud)
或者有人喜欢
!(tab.id <=> 1)
Run Code Online (Sandbox Code Playgroud)
小智 11
我发现NOT(NULL <=> 1)有效,我认为它也符合ISO标准,但很麻烦.使用列名显示的更好方法是:NOT(tbl.col1 <=> 1)
COALESCE(tab.id, 0) != 1
Run Code Online (Sandbox Code Playgroud)
如果你喜欢的话可以在这里使用.我遍历参数,并返回第一个不是的值NULL.在这种情况下,如果是NULL,它将进行比较0 != 1.虽然它可能会使用更多的迹象,但它仍然更容易管理,而不是被迫在这些情况下总是使用相反的"布尔"作为解决方案.
阅读文档 COALESCE()
现在MySQL没有NULL 安全的不等于运算符。
使用MySQL最通用的解决方案是:
!(tab.id <=> 1)
Run Code Online (Sandbox Code Playgroud)
或者
NOT tab.id <=> 1
Run Code Online (Sandbox Code Playgroud)
因为即使代替1你使用它也会正常工作NULL。