37

两种(语义等价的)方法中哪一种更适合测试不等式?

  1. 'foo' != 'bar'(感叹号和等号)
  2. 'foo' <> 'bar'(小于和大于 V 形符号一起)

MySQL 文档清楚地表明它们之间没有区别,但有些人似乎只喜欢以一种或另一种方式进行操作。也许这只是又一场毫无意义的 vi 与 emacs 辩论,但是当其他人正在阅读您的代码(以及您的查询)时,保持一些一致性很有用。

<>看起来很像<=>which 是一个未被充分利用的运算符,但可能会导致一目了然的混乱,因为两者几乎相反(除了明显的NULL情况)。

4

6 回答 6

53

<> 应该是首选,所有事情都是平等的,因为它符合 sql 标准并且在技术上更便携......

!= 是非标准的,但大多数数据库都实现了它。

sql:2008 语法:

<not equals operator> ::=
  <>
于 2010-01-14T19:37:15.557 回答
20

很明显。

这 !字符位于美国键盘的西北角。

微软总部位于美国的西北角。

所以。<>是对微软的致敬。

!=是对微软的拒绝。

这是一个秘密的政治密码。

于 2010-01-14T19:50:42.427 回答
4

<> 是 SQL-92 标准中唯一的一个。

于 2010-01-14T19:39:30.747 回答
2

DBA 通常喜欢 <>,而程序员喜欢 !=。只是一个观察:-)

于 2010-01-14T19:36:28.477 回答
2

它们是相同的,纯粹是偏好

这应该给你一个好主意

运营商

!=(不等于)不等于(不是 SQL-92 标准)

<>(不等于)不等于

于 2010-01-14T19:37:26.463 回答
0

<>运算符是 SQL 标准中的运算符,因此大多数了解 SQL 的人都会习惯它,或者至少知道它。直到最近,我自己甚至都不知道该!=运算符在某些 SQL 方言中也可用。

正如您所注意到的,人们往往只使用其中一种,这是一种很好的方法,至少在逐个项目的基础上是这样。无论您选择使用哪个,都要保持一致。

于 2010-01-14T19:43:24.597 回答