SQL-операторы отрицания: != vs ‹›

Почему в языке SQL два оператора отрицания? != и <>.

Являются ли они избыточными или между ними есть разница в зависимости от операндов?

Какой из них я должен использовать для отрицания строк в MySQL ?


person Badis Merabet    schedule 12.12.2015    source источник


Ответы (2)


  • <> является стандартом ISO Sql
  • != зависит от поставщика

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

person Pரதீப்    schedule 12.12.2015

Стандарт SQL указывает только <> для не равно. SQL:2011 Foundation, раздел 5.2 <token> и <separator> определяет:

<not equals operator> ::=
  <>

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

См. также документацию MySQL для не равно.

person Mark Rotteveel    schedule 12.12.2015
comment
Я бы не сказал, что большинство реализаций SQL также поддерживают !=, но нет причин для отрицательного ответа на этот ответ. - person Gordon Linoff; 12.12.2015
comment
@gordonlinoff Я заменил его на несколько; Я не могу вспомнить ни одного, который бы его не поддерживал, но, поскольку я не видел всех реализаций SQL, большинство из них, вероятно, неверны. Спасибо. - person Mark Rotteveel; 12.12.2015