sql >> Databáze >  >> RDS >> Mysql

odlišné hodnoty mysql bez prázdného řetězce a NULL

Váš jediný problém je, že místo AND používáte NEBO.

Podívejme se na případ, kdy je hodnota NULL:

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

FALSE OR NULL => NULL. Protože výsledkem kritérií není hodnota TRUE, nevybíráte hodnoty NULL.

A pokud je hodnota prázdný řetězec '', ' ' nebo jakákoli délka:

  • CON.EMAILADDRESS IS NOT NULL => PRAVDA
  • CON.EMAILADDRESS != ' ' => NEPRAVDA

PRAVDA NEBO NEPRAVDA => PRAVDA. Vyberete prázdný řetězec.

Předpokládám, že to je to, co vás zmátlo:přestože jste omylem použili OR místo AND, stále jste odstranili některé prázdné řetězce, ale ne všechny.

Takže:

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

Nebo jako jakýkoli řetězec != '' nemůže být NULL (NULL != '' => NULL, nikoli TRUE), jednoduše:

WHERE CON.EMAILADDRESS != '';


  1. mysql dotaz s podobným %..% v klauzuli where vrací různé výsledky

  2. Sanitační a validační formulář php

  3. Jak implementovat vztah many-to-many v PostgreSQL?

  4. propojte mysql s javou pomocí eclipse