valor vacios vacio una tabla sola mostrar insertar dejar datos como columna campos campo añadir agregar mysql sql

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



insertar un valor null en sql (15)

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 ...)


Como lo define el estándar SQL-92, cuando se comparan 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 amplio. Por lo tanto, todos los valores de cadena que constan completamente 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 conforman el valor de some_col :

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

o más sucintamente

SELECT * FROM T WHERE NULLIF(some_col, '' '') IS NULL;



Esta declaración es mucho más limpia y más legible para mí:

select * from my_table where ISNULL(NULLIF(some_col, ''''));


Esto seleccionará todas las filas en las que some_col es NULL o '''' (cadena vacía)

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


Mientras comprobaba el valor null or Empty de una columna en mi proyecto, noté que hay algunas preocupaciones de soporte en varias bases de datos.

Cada base de datos no es compatible con el método TRIM .

A continuación se muestra la matriz para comprender los métodos admitidos por diferentes bases de datos.

La función TRIM en SQL se usa para eliminar un prefijo o sufijo especificado de una cadena. El patrón más común que se elimina es espacios en blanco. Esta función se llama de manera diferente en diferentes bases de datos:

  • MySQL: TRIM(), RTRIM(), LTRIM()
  • Oracle: RTRIM(), LTRIM()
  • SQL Server: RTRIM(), LTRIM()

Cómo comprobar vacío / nulo: -

A continuación se presentan dos formas diferentes de acuerdo a diferentes bases de datos:

La sintaxis de estas funciones de recorte es:

  1. Uso de Trim para comprobar

    SELECT FirstName FROM UserDetails WHERE TRIM(LastName) IS NULL

  2. Uso de LTRIM y RTRIM para verificar

    SELECT FirstName FROM UserDetails WHERE LTRIM(RTRIM(LastName)) IS NULL

Por encima de ambas formas, proporcione el mismo resultado solo con base en su soporte de base de datos. Solo devuelve el FirstName de la tabla UserDetails si tiene un LastName vacío.

Espero que esto te ayude :)


Odio los campos desordenados en mis bases de datos. Si la columna puede ser una cadena en blanco o nula, prefiero arreglar esto antes de hacer la selección cada vez, como esto:

UPDATE MyTable SET MyColumn=NULL WHERE MyColumn=''''; SELECT * FROM MyTable WHERE MyColumn IS NULL

Esto mantiene los datos ordenados, siempre y cuando no necesite diferenciar específicamente entre NULL y vacío por alguna razón.


Otro método sin DÓNDE, intente esto ..

Seleccionará valores vacíos y nulos

SELECT ISNULL(NULLIF(fieldname,'''')) FROM tablename


Puede probar si una columna es nula o no es nula usando WHERE col IS NULL o WHERE col IS NOT NULL por ejemplo

SELECT myCol FROM MyTable WHERE MyCol IS NULL

En tu ejemplo tienes varias permutaciones de espacio en blanco. Puede eliminar el espacio en blanco usando TRIM y puede usar COALESCE para establecer un valor NULO predeterminado (COALESCE devolverá el primer valor no nulo de los valores que suppy).

p.ej

SELECT myCol FROM MyTable WHERE TRIM(COALESCE(MyCol, '''') = ''''

Esta consulta final devolverá filas donde MyCol es nulo o tiene cualquier espacio en blanco.

Si puede evitarlo, es mejor no tener una función en una columna de la cláusula WHERE, ya que dificulta el uso de un índice. Si simplemente desea comprobar si una columna es nula o está vacía, es mejor que haga esto:

SELECT myCol FROM MyTable WHERE MyCol IS NULL OR MyCol = ''''

Ver TRIM COALESCE e IS NULL para más información.

También trabajando con valores nulos de la documentación de MySQL.


Si desea que se presenten los valores NULL en último lugar al realizar un ORDEN POR, haga lo siguiente:

SELECT * FROM my_table WHERE NULLIF(some_col, '''') IS NULL;


Tambien puedes hacer

SELECT * FROM table WHERE column_name LIKE ''''

El ser inverso

SELECT * FROM table WHERE column_name NOT LIKE ''''


Una forma más corta de escribir la condición:

WHERE some_col > ''''

Como null > '''' produce unknown , esto tiene el efecto de filtrar tanto las cadenas null como las vacías.


Ya sea

SELECT IF(field1 IS NULL or field1 = '''', ''empty'', field1) as field1 from tablename

o

SELECT case when field1 IS NULL or field1 = '''' then ''empty'' else field1 end as field1 from tablename


intente esto si el tipo de datos es cadena y la fila es nula

SELECT * FROM table WHERE column_name IS NULL OR column_name = ''''

Si el tipo de datos es int o la columna es 0, intente esto

SELECT * FROM table WHERE column_name > = 0


tratar

SELECT 0 IS NULL , '''' IS NULL , NULL IS NULL -> 0, 0, 1

o

SELECT ISNULL('' '') , ISNULL( NULL ) -> 0 ,1

Referencia


SELECT column_name FROM table_name WHERE column_name IN (NULL, '''')