2010-10-12 15 views
10

come trattare con NULL valore nel mysql dove nel CLAUSOLAmysql valore NULL in cui nella clausola

provo come

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

non lavora

funzionare solo come:

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

come posso farlo funzionare in WHERE IN? è possibile ?

+0

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

risposta

7

Secondo la mia comprensione, si desidera estrarre ogni record con 1,2,3 e valore null.

Non penso sia possibile inserire null nell'operatore IN. Si aspetta valori e null va bene .. non è un valore. Quindi devi davvero mettere l'OR con il null per ottenere il risultato desiderato.

6

Forse queste informazioni dal MySQL Reference Manual aiuta:

Per rispettare lo standard SQL, IN restituisce NULL non solo se l'espressione sul lato sinistro è NULL, ma anche se nessuna corrispondenza viene trovato nel lista e una delle espressioni nella lista è NULL.

0

seguito dichiarazione dovrebbe aiutare:

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

Benvenuti a SO, Si prega di spiegare il vostro codice di risposta solo risposte non sono molto utili in molti casi. – Jeet

Problemi correlati