Seite 1 von 1

Syntax einer DB Abfrage

Verfasst: 01.01.2004 12:21
von Guido
Hallo zusammen

Wollte gerade ein bestimmtes Feld in einer Tabelle auf Inhalt überprüfen und habe festgestellt das dort in den Inhalten drei verschiedene "Zustände" sind:

1.: Feld ist vom User ausgefüllt
2.: Im Feld steht NULL
3.: Im Feld steht garnichts

Ich wollte mit jetzt alle anzeigen lassen die nichts ausgefüllt haben, also wo im Feld NULL steht oder garnichts drin steht.

Kann mir dafür jemand gerade den Abfrage Syntax geben. (Wenn`s nur um die NULL ginge wüsste ich ja wie es heisst aber so... :oops:

Die Tabelle heisst phpbb_users und das Feld user_motorrad

P.S. Nebenfrage: Wie kann es eigentlich sein dass dort (ausser dem ausgefüllten Feld) noch zwei andere verschiedene aber gleichbedeutende Inhalte gibt ?

Guido

Verfasst: 01.01.2004 13:01
von zeroK

Code: Alles auswählen

SELECT * FROM phpbb_users WHERE user_motorrad IS NULL OR user_motorrad = '';
Zum Thema NULL schau dir am besten mal das hier an :-)
http://www.mysql.com/doc/en/Working_with_NULL.html

Verfasst: 01.01.2004 13:15
von Guido
zeroK hat geschrieben:

Code: Alles auswählen

SELECT * FROM phpbb_users WHERE user_motorrad IS NULL OR user_motorrad = '';
Zum Thema NULL schau dir am besten mal das hier an :-)
http://www.mysql.com/doc/en/Working_with_NULL.html
erstmal danke für die schnelle hilfe ! ich hab auch Deinen Link besucht und im Grunde war mir das auch klar (mit den logischen Operatoren), aber was micht wundert ist das einmal "Null" in dem Feld steht und einmal garnichts. hast Du dafür eine Erlärung ?

Verfasst: 01.01.2004 13:30
von zeroK
Nunja, es ist halt ein Unterschied, ob in einem Feld nichts steht oder ob es NULL ist :-) Es geht hier halt einfach darum, dass wenn keine Daten oder keine sinnvollen Daten in das Feld eingetragen, dieses als NULL deklariert werden sollte und nicht als "" (was eh nur für varchars und verwandte Datentypen geht). Damit ist dann klar, dass keine oder keine sinnvollen Daten gekommen sind :-)

Verfasst: 01.01.2004 13:42
von Guido
Ja ok soweit klar.
Es ist ein VARCHAR(255) Feld welches nachträglich in die DB eingebaut wurde (aus dem Mod "Add Profile" von Acid).
Die User können nun bei der Registrierung dieses zusätzliche Feld ausfüllen bzw. es nachträglich in Ihrem Profil ändern.
So jetzt gibt es natürlich User die das weder bei der Registrierung machen noch nacher (also das Feld bleibt unausegfüllt).
Und bei DENEN steht eben einmal "Null" und einmal "nichts" und das kapier ich halt nicht (das beides vorkommt)

Guido

Verfasst: 01.01.2004 13:44
von zeroK
Wenn nichts drin steht, dann heißt das von der Semantik her, dass sie eben "" reingeschrieben haben, also bewusst, während NULL heißt, dass da von vorn herein nix drinsteht und sie da auch absolut nichts dran geändert haben, also "unbewusst".
Ich kenn den MOD nicht, also kann ich dir nicht sagen, wie es da gemacht wurde, aber das ist halt die Semantik hinter NULL.

Verfasst: 01.01.2004 13:48
von Guido
Aha dann könnte es so sein:

"null" sind die User die schon angemeldet waren als der Mod eingebaut wurde und "" sind die die nachher dazugekommen sind aber nichts eingetragen haben...

Ich glaub ich hab`s jetzt. Vielen Dank für deine Geduld ;-)

Guido