Seleccione solo valores no nulos en MySQL

Raymond Peter 30 enero 2023
  1. Comprender los valores nulos en MySQL
  2. Seleccione solo valores no nulos usando WHERE NOT y <=> en MySQL
Seleccione solo valores no nulos 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.