Usando o operador correto ou preferível, não igual em mysql
-
20-09-2019 - |
Pergunta
Quais das duas maneiras (semanticamente equivalentes) são preferíveis para testar a desigualdade?
'foo' != 'bar'
(Marcos de exclamação e é igual a sinal)'foo' <> 'bar'
(menor e maior que os símbolos da Chevron juntos)
A documentação do MySQL indica claramente que não há diferença entre eles e, no entanto, algumas pessoas parecem estar ligadas apenas a fazê -lo de uma maneira ou de outra. Talvez este seja apenas mais um debate inacessível VI vs. EMACS, mas quando outras pessoas estão lendo seu código (e, portanto, suas consultas), é útil manter alguma consistência.
<>
parece muito parecido <=>
que é um operador muito subutilizado, mas talvez possa levar à confusão rapidamente, já que os dois são quase opostos (exceto o óbvio NULL
casos).
Solução
<> deve ser preferido, sendo todas as coisas iguais, pois está de acordo com o padrão SQL e é tecnicamente mais portátil ...
! = Não é padrão, mas a maioria dos DB o implementa.
SQL: 2008 Gramática:
<not equals operator> ::=
<>
Outras dicas
É obvio.
O ! O personagem está no canto noroeste dos teclados dos EUA.
A sede da Microsoft está no canto noroeste dos EUA.
Então. <>
é um aceno para a Microsoft.
!=
é uma rejeição da Microsoft.
É um código político secreto.
<> é o único no padrão SQL-92.
DBA geralmente é como <> e programadores como! =. Apenas uma observação :-)
Eles são os mesmos, é puramente preferência.
Isso deve lhe dar uma boa ideia
! = (Não é igual a) não é igual a (não padrão SQL-92)
<> (Não igual a) não igual a
o <>
O operador é o que está no padrão SQL; portanto, a maioria das pessoas que sabe que o SQL estará acostumada a ele, ou pelo menos ciente disso. Eu mesmo não estava ciente de que o !=
O operador também estava disponível em alguns dialetos SQL até recentemente.
Como você notou, as pessoas tendem a usar apenas uma ou outra, e essa é uma boa abordagem, pelo menos em uma base de projeto por projeto. Qualquer que você opte por usar, seja consistente.