Syntax einer DB Abfrage

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Benutzeravatar
Guido
Mitglied
Beiträge: 1307
Registriert: 06.10.2002 09:44
Wohnort: Rheinland
Kontaktdaten:

Syntax einer DB Abfrage

Beitrag 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
zeroK
Mitglied
Beiträge: 226
Registriert: 18.02.2003 18:56
Wohnort: Klagenfurt
Kontaktdaten:

Beitrag 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
Kein Support via PM, IM oder E-Mail
Benutzeravatar
Guido
Mitglied
Beiträge: 1307
Registriert: 06.10.2002 09:44
Wohnort: Rheinland
Kontaktdaten:

Beitrag 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 ?
zeroK
Mitglied
Beiträge: 226
Registriert: 18.02.2003 18:56
Wohnort: Klagenfurt
Kontaktdaten:

Beitrag 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 :-)
Kein Support via PM, IM oder E-Mail
Benutzeravatar
Guido
Mitglied
Beiträge: 1307
Registriert: 06.10.2002 09:44
Wohnort: Rheinland
Kontaktdaten:

Beitrag 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
zeroK
Mitglied
Beiträge: 226
Registriert: 18.02.2003 18:56
Wohnort: Klagenfurt
Kontaktdaten:

Beitrag 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.
Kein Support via PM, IM oder E-Mail
Benutzeravatar
Guido
Mitglied
Beiträge: 1307
Registriert: 06.10.2002 09:44
Wohnort: Rheinland
Kontaktdaten:

Beitrag 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
Antworten

Zurück zu „Coding & Technik“