¿Cómo verifico si una columna está vacía o nula en MySQL?

Resuelto priya asked hace 13 años • 22 respuestas

Tengo una columna en una tabla que puede contener valores nulos o vacíos. ¿Cómo verifico si una columna está vacía o nula en las filas presentes en una tabla?

(e.g. null or '' or '  ' or '      ' and ...)
priya avatar Dec 12 '11 13:12 priya
Aceptado

Esto seleccionará todas las filas donde some_colestá NULLo ''(cadena vacía)

SELECT * FROM table WHERE some_col IS NULL OR some_col = '';
maček avatar Dec 12 '2011 06:12 maček

Según lo definido por el estándar SQL-92, al comparar dos cadenas de diferentes anchos, el valor más estrecho se rellena a la derecha con espacios para que tenga el mismo ancho que el valor más ancho. Por lo tanto, todos los valores de cadena que constan enteramente de espacios (incluidos los espacios cero) se considerarán iguales, por ejemplo

'' = ' ' IS TRUE
'' = '  ' IS TRUE
' ' = '  ' IS TRUE
'  ' = '      ' IS TRUE
etc

Por lo tanto, esto debería funcionar independientemente de cuántos espacios compongan el some_colvalor:

SELECT * 
  FROM T
 WHERE some_col IS NULL 
       OR some_col = ' ';

o más sucintamente:

SELECT * 
  FROM T
 WHERE NULLIF(some_col, ' ') IS NULL;
onedaywhen avatar Dec 12 '2011 12:12 onedaywhen