not create mysql sql null isnull

create - Comparación de MySQL con valor nulo



if is null mysql (5)

Basado en mis pruebas y la documentación aquí: http://dev.mysql.com/doc/refman/5.0/en/comparison-operators.html

Puedes comparar nulo y obtener un resultado booleano usando <=>

Por ejemplo:

select x <=> y; or select @x <=> @y;

Esto también compara cadena vs nulo, cadena vs cadena, etc.

Tengo una columna llamada CÓDIGO en una tabla de MySQL que puede ser NULA. Digamos que tengo algunas filas con CODE = ''C'' que quiero ignorar en mi conjunto de resultados seleccionados. Puedo tener CODE = NULL o CODE! = ''C'' en mi conjunto de resultados.

La siguiente consulta no devuelve una fila con CODE como NULL:

SELECT * from TABLE where CODE!=''C''

Pero esta consulta funciona como se esperaba y sé que es la forma correcta de hacerlo.

SELECT * from TABLE where CODE IS NULL OR CODE!=''C''

Mi pregunta es ¿por qué tener solo CODE? = ''C'' no devuelve filas donde CODE = NULL? Definitivamente ''C'' no es NULL. No estamos comparando ningún valor con un personaje aquí. ¿Puede alguien arrojar algo de luz como por qué no funciona de esa manera?


En MySQL, NULL se considera como un ''valor desconocido, faltante'', en lugar de ningún valor. Eche un vistazo a esta referencia de MySQL en NULL .

Cualquier comparación aritmética con NULL no devuelve verdadero o falso, sino que devuelve NULL . Por lo tanto, NULL != ''C'' devuelve NULL , en lugar de devolver verdadero.

Cualquier comparación aritmética con ''NULL'' devolverá false. Para comprobar esto en SQL:

SELECT IF(NULL=123,''true'',''false'')

Para verificar los valores NULL , necesitamos usar el operador IS NULL y IS NOT NULL .


En SQL, el valor NULL es un valor especial, no comparable con ningún otro. El resultado de una comparación directa con un valor es siempre FALSO o NULL, dependiendo de la implementación.

Para probar un valor nulo, debe utilizar IS NULL y IS NOT NULL .


seleccione * del usuario donde application_id = ''1223333344'' y el nombre es nulo;


SELECT * FROM `table_name` WHERE IFNULL(`column_name` != ''C'', TRUE)