Использование правильного или предпочтительного неравного оператора в MySQL - PullRequest
35 голосов
/ 14 января 2010

Какой из двух (семантически эквивалентных) способов предпочтительнее проверить на неравенство?

  1. 'foo' != 'bar' (восклицательный знак и знак равенства)
  2. 'foo' <> 'bar' (меньше и больше символов шеврона вместе)

Документация MySQL ясно указывает на то, что между ними нет никакой разницы, и, тем не менее, некоторые люди, похоже, привязаны к тому, чтобы делать это только так или иначе. Может быть, это просто еще одна бессмысленная дискуссия о vi и emacs, но когда другие люди читают ваш код (и, следовательно, ваши запросы), полезно поддерживать некоторую согласованность.

<> выглядит очень похоже на <=>, который очень недоиспользуется оператором, но, возможно, может привести к путанице на первый взгляд, так как они почти противоположны (за исключением очевидных NULL случаев).

Ответы [ 6 ]

51 голосов
/ 14 января 2010

<> должно быть предпочтительным, при прочих равных условиях, поскольку оно соответствует стандарту sql и технически более портативно ...

! = Нестандартно, но большинство БД его реализуют.

sql: 2008 грамматика:

<not equals operator> ::=
  <>
19 голосов
/ 14 января 2010

Это очевидно.

The!персонаж находится в северо-западном углу клавиатуры США.

Штаб-квартира Microsoft находится в северо-западном углу США.

Итак.<> - это дань Microsoft.

!= - это отказ от Microsoft.

Это секретный политический кодекс.

4 голосов
/ 14 января 2010

<> - единственный в стандарте SQL-92.

2 голосов
/ 14 января 2010

Они одинаковы, это чисто предпочтения .

Это должно дать вам хорошую идею

Операторы

! = (Не равно) Не ​​равно (не стандарт SQL-92)

<> (Не равно) Не ​​равно

2 голосов
/ 14 января 2010

Администраторы баз данных обычно любят <>, а программисты любят! Просто наблюдение: -)

0 голосов
/ 14 января 2010

Оператор <> входит в стандарт SQL, поэтому большинство людей, знакомых с SQL, привыкнут к нему или хотя бы знают о нем. Я сам даже не знал о том, что оператор != также был доступен на некоторых диалектах SQL до недавнего времени.

Как вы заметили, люди склонны использовать только одно или другое, и это хороший подход, по крайней мере, для каждого проекта. Что бы вы ни выбрали, будьте последовательны.

...