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

Rob*_*Dam 35 mysql sql inequality standards-compliance

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

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

MySQL文档清楚地表明它们之间没有区别,但是有些人似乎只是以这样或那样的方式做到了.也许这只是另一个毫无意义的vi与emacs辩论,但当其他人正在阅读你的代码(以及你的查询)时,保持一定的一致性是有用的.

<>看起来很像<=>是一个非常不充分利用的操作员,但很快就会导致混乱,因为两者几乎相反(除了明显的NULL情况).

jsp*_*cal 51

<>应该是首选,所有条件都相同,因为它符合sql标准,并且技术上更便携......

!=非标准,但大多数db都实现它.

sql:2008语法:

<not equals operator> ::=
  <>
Run Code Online (Sandbox Code Playgroud)

  • 虽然你的答案显然没有错,但对于MySQL我得到的印象是`!=`被更广泛地使用.这可能是因为它与PHP密切相关,正如JonH所说,"程序员"更喜欢`!=`.换句话说,更多开发人员可能理解`!=`而不是`<>`.我的观点是,如果你想遵守标准,那么`<>`是可取的,但为了便于阅读,`!=`可能是更好的选择.只是一个想法. (2认同)

S.L*_*ott 19

很明显.

的!角色位于美国键盘的西北角.

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

所以.<>是对微软的一个点头.

!= 是对微软的拒绝.

这是一个秘密的政治法典.

  • 因此,如果我们否定不等于比较,我们是否支持微软?还是我们拒绝自己的反对?:) (19认同)