两种(语义等效)方法中哪一种更适合测试不平等?

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

MySQL 文档清楚地表明它们之间没有区别,但有些人似乎只执着于以一种或另一种方式进行操作。也许这只是另一个毫无意义的 vi vs.emacs 存在争议,但是当其他人阅读您的代码(以及您的查询)时,保持一定的一致性很有用。

<> 看起来很像 <=> 这是一个未充分利用的运算符,但可能会导致快速浏览时产生混乱,因为两者几乎相反(除了明显的 NULL 例)。

有帮助吗?

解决方案

在所有条件相同的情况下, <> 应该是首选,因为它符合 sql 标准并且在技术上更可移植......

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

sql:2008语法:

<not equals operator> ::=
  <>

其他提示

很明显。

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

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

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

!= 是对微软的拒绝。

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

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

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

他们是一样的, 这纯粹是偏好.

这应该会给你一个好主意

运营商

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

<>(不等于)不等于

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top