Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Por que é null<>null=null no mysql


Porque qualquer operador de comparação sobre NULL aparecendo em um filtro sql deve (e faz) fazer com que a linha não seja selecionada.

Você deve usar o operador nulo seguro <=> para comparar com a coluna contendo NULL valores e outros NOT NULL valor, mas <=> retornará 1 quando ambos os operandos são NULL porque NULL nunca é considerado igual a NULL .

Este é um exemplo de uma situação em que o operador null safe é útil:

Você tem uma tabela:
Phones
----
Number
CountryCode (can be NULL) 

E você deseja selecionar todos os números de telefone que não sejam da Espanha (código do país 34). A primeira tentativa geralmente é:
SELECT Number FROM Phones WHERE CountryCode <> 34;

Mas você percebe que há telefones sem código de país (valor NULL) não listados e deseja incluí-los em seu resultado porque eles não são da Espanha:
SELECT Number FROM Phones WHERE CountryCode <=> 34;