sql >> Base de Datos >  >> RDS >> Mysql

¿Por qué es nulo<>null=null en mysql?

Porque cualquier operador de comparación sobre NULL aparecer en un filtro sql debería (y lo hace) hacer que la fila no se seleccione.

Debe usar el operador seguro nulo <=> para comparar con la columna que contiene NULL valores y otros NOT NULL valor pero <=> devolverá 1 cuando ambos operandos son NULL porque NULL nunca se considera igual a NULL .

Este es un ejemplo de una situación en la que el operador seguro nulo es útil:

Tienes una mesa:

Phones
----
Number
CountryCode (can be NULL) 

Y quieres seleccionar todos los números de teléfono que no sean de España (código de país 34). El primer intento suele ser:

SELECT Number FROM Phones WHERE CountryCode <> 34;

Pero observa que hay teléfonos sin código de país (valor NULL) que no están en la lista y desea incluirlos en su resultado porque no son de España:

SELECT Number FROM Phones WHERE CountryCode <=> 34;