sql >> Database teknologi >  >> RDS >> Mysql

mysql distinkte værdier uden tom streng og NULL

Dit eneste problem er, at du bruger OR i stedet for OG.

Lad os se på det tilfælde, hvor værdien er NULL:

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

FALSK ELLER NULL => NULL. Da kriterierne ikke resulterer i TRUE, vælger du ikke NULL.

Og hvis værdien er en tom streng '', ' ' eller en hvilken som helst længde:

  • CON.EMAILADDRESS IS NOT NULL => SAND
  • CON.EMAILADDRESS != ' ' => FALSK

SAND ELLER FALSK => SAND. Du vælger den tomme streng.

Jeg formoder, at det var det, der forvirrede dig:på trods af at du ved en fejl har brugt OR i stedet for OG du stadig fjernede nogle tomme strenge, men ikke alle.

Så:

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

Eller som en hvilken som helst streng != '' kan ikke være NULL (NULL != '' => NULL, ikke SAND), blot:

WHERE CON.EMAILADDRESS != '';


  1. At lukke et streaming-resultatsæt (ved at bruge mysql jdbc) tager lang tid

  2. Find afhængige objekter til en tabel eller visning

  3. Hvorfor MySQL giver fejl Ikke tilladt at returnere et resultatsæt fra en funktion?

  4. Hvad er brugen af ​​SQL GROUP BY-erklæring?