Problema:
Quiere encontrar registros con NULL en una columna.
Ejemplo:
Nuestra base de datos tiene una tabla llamada children
con datos en cuatro columnas:id
, first_name
, middle_name
y last_name
.
id | nombre | segundo_nombre | apellido |
---|---|---|---|
1 | Juan | Carlo | Jackson |
2 | Tom | NULO | Thomson |
3 | Lisa | Alicia | NULO |
4 | Ana | NULO | Smith |
Encontremos la identificación, el nombre y el apellido de los niños sin un segundo nombre (NULL en la columna middle_name
). Usamos el operador IS NULL para esto.
Solución:
SELECT id, first_name, last_name FROM children WHERE middle_name IS NULL;
Aquí está el resultado:
id | nombre | apellido |
---|---|---|
2 | Tom | Thomson |
4 | Ana | Smith |
Esto devuelve solo registros con NULL en middle_name
, por lo que Tom y Anne están presentes, pero no John y Lisa, que tienen segundo nombre.
Discusión:
Usa el IS NULL
operador en una condición con DONDE para encontrar registros con NULL en una columna. Por supuesto, también puede usar cualquier expresión en lugar del nombre de una columna y verificar si devuelve NULL. No se necesita nada más que el nombre de una columna y el operador IS NULL (en nuestro ejemplo, middle_name IS NULL
). Ponga esta condición en la cláusula WHERE para filtrar filas (en nuestro ejemplo, WHERE middle_name IS NULL
). Si la condición es verdadera, la columna almacena un NULL y se devuelve esta fila. Arriba, la consulta devuelve solo dos registros con los hijos Tom y Anne, que no tienen segundo nombre, por lo que la columna middle_name
almacena NULL.