代码之家  ›  专栏  ›  技术社区  ›  Rob Van Dam

在MySQL中使用正确的或更好的不相等运算符

  •  34
  • Rob Van Dam  · 技术社区  · 14 年前

    两种(语义等价)方法中哪一种比检验不等式更可取?

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

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

    <> 看起来很像 <=> 这是一个非常不常用的运算符,但可能会导致快速浏览时的混淆,因为这两个运算符几乎是相反的(除了明显的 NULL 病例)。

    6 回复  |  直到 11 年前
        1
  •  50
  •   jspcal    14 年前

    <>应该是首选的,所有东西都是平等的,因为它符合SQL标准,技术上更容易移植…

    !=是非标准的,但大多数DB都会实现它。

    SQL:2008语法:

    <not equals operator> ::=
      <>
    
        2
  •  18
  •   S.Lott    14 年前

    这是显而易见的。

    这个!字符在美国键盘的西北角。

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

    所以。 <> 向微软致敬。

    != 是微软的拒绝。

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

        3
  •  4
  •   Joe    14 年前

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

        4
  •  2
  •   JonH    14 年前

    DBA通常与<gt;相似,程序员也喜欢!= 只是一个观察——)

        5
  •  2
  •   Adriaan Stander    14 年前

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

    这应该给你一个好主意

    Operators

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

    <>(不等于)不等于

        6
  •  0
  •   Guffa    14 年前

    这个 <> operator是SQL标准中的一个,所以大多数了解SQL的人都会习惯它,或者至少知道它。我自己甚至不知道 != 直到最近,一些SQL方言中还提供了运算符。

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