sql 否定运算符:!= vs <> [重复]

Posted

技术标签:

【中文标题】sql 否定运算符:!= vs <> [重复]【英文标题】:sql negation operators : != vs <> [duplicate] 【发布时间】:2015-12-12 12:22:47 【问题描述】:

为什么 SQL 语言中有两个否定运算符? !=&lt;&gt;

它们是多余的还是根据操作数而有所不同?

我应该使用哪一个来否定mysql 中的字符串?

【问题讨论】:

【参考方案1】: &lt;&gt; 是 ISO Sql 标准 != 是特定于供应商的

它们之间没有区别。使用哪一个只是个人喜好。我总是更喜欢&lt;&gt;,因为它是ISO SQL 标准

【讨论】:

【参考方案2】:

SQL 标准仅指定 &lt;&gt; 表示不等于。 SQL:2011 Foundation,第 5.2 节 &lt;token&gt;&lt;separator&gt; 指定:

<not equals operator> ::=
  <>

然而,一些 SQL 实现(如 MySQL)也支持 !=,因为很多程序员更熟悉 != 不等于。它们是完全等效的,因此您可以使用其中任何一个,但从标准的角度来看,您应该使用 &lt;&gt;

另请参阅not equals 的 MySQL 文档。

【讨论】:

我不会说“大多数 SQL 实现也支持!=,但没有理由对这个答案投反对票。 @gordonlinoff 我用一些替换了它;我不记得见过一个不支持它的,但由于我还没有看到所有的 SQL 实现,大多数可能都不正确。谢谢。

以上是关于sql 否定运算符:!= vs <> [重复]的主要内容,如果未能解决你的问题,请参考以下文章

Mysql != vs <>比较[重复]

C 语言 运算符表

python波浪号一元运算符作为否定numpy bool数组

求sql,用not exist双重否定的方式

新手求助VS2010在不能识别cin和cout之后的>>和<<运算符

正则表达式背后的 pl/sql 否定查看