Seleccione solo valores no nulos en MySQL
- Comprender los valores nulos en MySQL
-
Seleccione solo valores no nulos usando
WHERE NOT
y<=>
en MySQL
Este artículo de tutorial le mostrará cómo escribir una declaración de selección en MySQL que elimine todos los valores nulos de columnas específicas.
Comprender los valores nulos en MySQL
Los valores NULL
nos ayudan a saber qué partes de cualquier tabla están vacías y nos permiten tratarlas adecuadamente.
Las razones para eliminar filas o columnas nulas de una tabla dependen en gran medida de lo que esté buscando, pero un buen ejemplo es cuando necesita datos de una columna específica en una tabla, y si una fila devuelve NULL
, no sirve de nada. leyendo esa información.
Cuando se trabaja con tablas grandes, la eliminación de valores nulos puede ahorrar tiempo y reducir la necesidad de computación.
En lugar de escribir una secuencia de comandos para consultar desde una tabla y luego escribir otra para recorrer los datos y encontrar valores nulos, puede simplificar el proceso al incluir una condición IS NOT NULL
en la secuencia de comandos inicial.
SELECT * FROM 'table name'
WHERE 'column name' IS NOT NULL;
El resultado será la tabla completa sin filas con valores NULL
según la columna especificada.
El siguiente ejemplo toma una lista de códigos postales en Albany junto con una categoría de true
o false
a lo largo de cada lado para diferenciar entre los códigos postales que se escribieron correctamente y los que tienen errores tipográficos:
| code | cd_check |
| -------|----------|
| NULL | true |
| 12649 | false |
| 12248 | true |
| 12239 | true |
| 12359 | NULL |
| 12227 | true |
Para eliminar solo la fila con un valor NULL
en la columna cd_check
, aplique el siguiente código:
CREATE TABLE albany (
code INTEGER,
cd_check TEXT
);
INSERT INTO albany VALUES (NULL,"true");
INSERT INTO albany VALUES (12649,"false");
INSERT INTO albany VALUES (12248,"true");
INSERT INTO albany VALUES (12239,"true");
INSERT INTO albany VALUES (12359,NULL);
INSERT INTO albany VALUES (12227,"true");
SELECT code, cd_check FROM albany
WHERE cd_check IS NOT NULL;
Salir:
| code | cd_check |
| -------|----------|
| NULL | true |
| 12649 | false |
| 12248 | true |
| 12239 | true |
| 12227 | true |
Lo anterior devolvió la tabla sin que la fila contenga un valor NULL
en la columna cd_check
. Sin embargo, dado que solo se especificó una columna, la fila con un valor NULL
permanece debajo de la columna de código.
Puede eliminar filas de varias columnas agregando la instrucción AND
. La declaración verificará en ambas columnas y devolverá lo siguiente:
| code | cd_check |
| -------|----------|
| 12649 | false |
| 12248 | true |
| 12239 | true |
| 12227 | true |
Ambas filas que contenían valores nulos se eliminaron de la tabla.
Seleccione solo valores no nulos usando WHERE NOT
y <=>
en MySQL
En lugar de colocar IS NOT NULL
en el script, puede usar la siguiente alternativa:
Los operadores de comparación WHERE NOT
y <=>
sustituyen IS NOT
cuando WHERE
va seguido de NOT
.
Ejemplo:
SELECT code, cd_check FROM albany
WHERE NOT cd_check <=> NULL;
Si bien esto también funcionará, es mejor usar IS NOT NULL
, ya que es una mejor práctica.