sql 否定运算符:!= vs <>

sql negation operators : != vs <>

为什么SQL语言中有两个否定运算符? !=<>.

它们是多余的还是它们之间有区别取决于操作数?

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

  • <> 是 ISO Sql 标准
  • != 是供应商特定的

两者没有区别。使用哪个只是个人喜好。我总是喜欢 <> 因为它是 ISO SQL 标准

SQL 标准仅指定 <> 表示不等于。 SQL:2011 基础,第 5.2 节 <token><separator> 指定:

<not equals operator> ::=
  <>

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

另请参阅 not equals 的 MySQL 文档。