在一本书中,我看到了这种语法:
SELECT * FROM inw WHERE id IS DISTINCT FROM 4;
但是我收到了一个错误:
错误1064(42000):您的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册,以便在4' DISTINCT FROM 4'附近使用正确的语法。在第1行
它可以替代:
mysql> SELECT * FROM inw WHERE id is null OR id <> 4;
+------+
| id |
+------+
| NULL |
| NULL |
| 3 |
+------+
&#39;是不是来自&#39;一个真正的MySQL运营商?
答案 0 :(得分:8)
is distinct from
在SQL:2003标准中定义,是一个比较两个值的null安全运算符。
MySQL支持“null safe equals”运算符:<=>
。如果否定,则会得到相同的行为。 (<=>
对应is not distinct from
)
SELECT *
FROM inw
WHERE not id <=> 4;
SQLFiddle:http://sqlfiddle.com/#!2/0abf2a/3