【问题标题】:Is 'IS DISTINCT FROM' a real MySQL operator?'IS DISTINCT FROM' 是真正的 MySQL 运算符吗?
【发布时间】:2014-11-25 18:47:26
【问题描述】:

在一本书中我看到了这样的语法:

SELECT * FROM inw WHERE id IS DISTINCT FROM 4;

但我得到一个错误:

ERROR 1064 (42000):您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“DISTINCT FROM 4”附近使用正确的语法

这是一个替代方案:

mysql> SELECT * FROM inw WHERE id is null OR id <> 4;
+------+
| id   |
+------+
| NULL |
| NULL |
|    3 |
+------+

“IS DISTINCT FROM”是真正的 MySQL 运算符吗?

【问题讨论】:

标签: mysql logical-operators


【解决方案1】:

is distinct from 在 SQL:2003 标准中定义,是用于比较两个值的空安全运算符。

MySQL 支持“空安全等于”运算符:&lt;=&gt;。如果这被否定,你会得到相同的行为。 (&lt;=&gt;对应is not distinct from

SELECT * 
FROM inw 
WHERE not id <=> 4;

SQLFiddle:http://sqlfiddle.com/#!2/0abf2a/3

【讨论】:

  • WHERE id &lt;=&gt; 4 似乎与 WHERE id IS NULL OR id&lt;&gt;4 不匹配。
  • @MarcusAdams:是的,你是对的。我忘了NOT
猜你喜欢
  • 2014-02-21
  • 2012-05-12
  • 1970-01-01
  • 2010-12-03
  • 1970-01-01
  • 2010-11-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多