Mysql
 sql >> Datenbank >  >> RDS >> Mysql

mysql-unterschiedliche Werte ohne leere Zeichenfolge und NULL

Ihr einziges Problem ist, dass Sie ODER anstelle von UND verwenden.

Schauen wir uns den Fall an, in dem der Wert NULL ist:

  • CON.EMAILADDRESS IS NOT NULL => FALSCH
  • CON.EMAILADDRESS != ' ' => NULL

FALSCH ODER NULL => NULL. Da das Kriterium nicht WAHR ergibt, wählen Sie keine NULLen aus.

Und wenn der Wert ein leerer String '', '' oder eine beliebige Länge ist:

  • CON.EMAILADDRESS IS NOT NULL => WAHR
  • CON.EMAILADDRESS != ' ' => FALSCH

WAHR ODER FALSCH => WAHR. Sie wählen die leere Zeichenfolge aus.

Ich nehme an, das hat Sie verwirrt:Obwohl Sie fälschlicherweise OR anstelle von AND verwendet haben, haben Sie immer noch einige leere Zeichenfolgen entfernt, aber nicht alle.

Also:

WHERE CON.EMAILADDRESS IS NOT NULL AND CON.EMAILADDRESS != ' ';

Oder als beliebige Zeichenfolge != '' darf nicht NULL sein (NULL != '' => NULL, nicht TRUE), einfach:

WHERE CON.EMAILADDRESS != '';