sql 否定运算符:!= vs <> [重复]
Posted
技术标签:
【中文标题】sql 否定运算符:!= vs <> [重复]【英文标题】:sql negation operators : != vs <> [duplicate] 【发布时间】:2015-12-12 12:22:47 【问题描述】:为什么 SQL 语言中有两个否定运算符? !=
和 <>
。
它们是多余的还是根据操作数而有所不同?
我应该使用哪一个来否定mysql
中的字符串?
【问题讨论】:
【参考方案1】:<>
是 ISO Sql 标准
!=
是特定于供应商的
它们之间没有区别。使用哪一个只是个人喜好。我总是更喜欢<>
,因为它是ISO SQL 标准
【讨论】:
【参考方案2】:SQL 标准仅指定 <>
表示不等于。 SQL:2011 Foundation,第 5.2 节 <token>
和 <separator>
指定:
<not equals operator> ::= <>
然而,一些 SQL 实现(如 MySQL)也支持 !=
,因为很多程序员更熟悉 !=
不等于。它们是完全等效的,因此您可以使用其中任何一个,但从标准的角度来看,您应该使用 <>
。
另请参阅not equals 的 MySQL 文档。
【讨论】:
我不会说“大多数 SQL 实现也支持!=
,但没有理由对这个答案投反对票。
@gordonlinoff 我用一些替换了它;我不记得见过一个不支持它的,但由于我还没有看到所有的 SQL 实现,大多数可能都不正确。谢谢。以上是关于sql 否定运算符:!= vs <> [重复]的主要内容,如果未能解决你的问题,请参考以下文章
python波浪号一元运算符作为否定numpy bool数组