在MySQL中使用正确的或者更好的不相等的运算符
哪两种(语义上相同的)方法更适合testing不平等?
-
'foo' != 'bar'
(感叹号和等号) -
'foo' <> 'bar'
(小于和大于V形符号)
MySQL的文档清楚地表明,他们之间没有任何区别,但是有些人似乎只是以某种方式来做这件事。 也许这只是另一个无意义的vi与emacs的辩论,但是当其他人正在阅读你的代码(以及你的查询)时,保持一定的一致性是有用的。
<>
看起来很像<=>
这是一个非常不被使用的操作符,但可能会导致混淆,因为两者几乎相反(除了明显的NULL
情况)。
<>应该是首选,所有的东西是平等的,因为它符合SQL标准,并在技术上更便携…
!=是非标准的,但大多数数据库的实施。
sql:2008语法:
<not equals operator> ::= <>
很明显。
那! 字符是在美国键盘的西北angular。
微软总部位于美国的西北angular。
所以。 对微软来说是点头。
!=
是微软的拒绝。
这是一个秘密的政治法规。
<>是SQL-92标准中唯一的一个。
DBA通常像<>和程序员一样!=。 只是一个观察:-)
他们是一样的, 这是纯粹的偏好 。
这应该给你一个好主意
运营商
!=(不等于)不等于(不是SQL-92标准)
(不等于)不等于
<>
运算符是SQL标准中的一个,所以大多数了解SQL的人都会习惯它,或者至less知道它。 我自己甚至没有意识到,直到最近,还有一些SQL方言也使用!=
操作符。
正如你注意到的那样,人们往往只使用一种或另一种,这是一个很好的方法,至less在一个项目的基础上。 无论你select哪个,都要保持一致。