2010-10-12 18 views
10

cómo tratar con NULL valor en MySQL , donde en CLÁUSULAmysql valor nulo en donde la CLÁUSULA

trato como

SELECT * FROM mytable WHERE field IN(1,2,3,NULL) 

que no funcione

sólo funcionan como:

SELECT * FROM mytable WHERE field IN(1,2,3) OR field IS NULL 

¿cómo puedo hacer que funcione en WHERE IN? es posible ?

+0

https://stackoverflow.com/questions/129077/not-in-clause-and-null-values ​​ – ako

Respuesta

7

Según mi entender, usted quiere sacar cada registro con 1,2,3 y valor nulo.

No creo que sea posible poner nulo en el operador IN. Espera valores y null está bien ... no es un valor. Entonces, realmente debes poner el OR con el nulo para obtener el resultado deseado.

6

Tal vez esta información de la MySQL Reference Manual ayuda:

Para cumplir con el estándar SQL, EN devuelve NULL no sólo si la expresión en el lado izquierdo es NULL, pero también si no se encuentra una coincidencia en el list y una de las expresiones en la lista es NULL.

0

Tras la declaración debería ayudar:

SELECT * FROM mytable WHERE COALESCE(field,0) IN (1,2,3,0) 
+0

Bienvenido a, explique su código de respuesta únicas respuestas no son muy útiles en muchos casos. – Jeet