Gustl: Logik ganz einfach: nur UND, kein ODER

Beitrag lesen

Ich hege die Vermutung, dass Du an NULL scheiterst

Im Gegensatz zu Programmiersprachen wie Perl oder PHP wird ein NULL-Wert *nicht* zu false ausgewertet, aber auch nicht zu true.

ja das klingt gut, vinzenz. Meine Sprache :-)

Jetzt muss ich kurz zurück gehen. Angenommen Tabelle quark mit 4 Varchar-Spalten. name, frucht, zucker, menge. Ich füge einen neuen Datensatz ein:

INSERT INTO quark (name,frucht,zucker) VALUES ('lecker','kirsche','')

dann ist: name,frucht ein bestimmter wert, zucker ein leerer string und menge NULL. stimmt das, VINZENZ?

wenn ich später nicht mehr weiß ob ich NULL oder einen leeren string eingefügt habe, muss ich dann so selektieren? (aufgabenstellung: finde datensatz mit lecker ohne zucker ODER ohne menge).

SELECT from quark WHERE ((zucker<>'' OR zucker IS NULL) OR (menge<>'' OR menge IS NULL)) AND name='lecker' ...

gibts einen ausdruck der bei beiden ('' und NULL) true zurückgibt?

... WHERE (zucker IS LEER_FOR_IDIOT) OR (menge IS LEER_FOR_IDIOT) ... :-)