Ausgabe nur wenn Felder einen Inhalt haben
Kristina
- datenbank
- mysql
Jetzt habe ich noch eine Faage die ich nicht lösen kann:
SELECT * FROM table GROUP BY KFZ ORDER BY KFZ ASC
Wenn in meine Tabelle aber Zeilen sind die keinen Inhalt in der Zelle KFZ haben, möchte ich diese nicht abfragen,
mein Versuch
SELECT * FROM table WHERE kfz<>"" GROUP BY KFZ ORDER BY KFZ ASC
scheiterte klanglos.
Tach!
Wenn in meine Tabelle aber Zeilen sind die keinen Inhalt in der Zelle KFZ haben, möchte ich diese nicht abfragen,
Definiere "kein Inhalt"!
mein Versuch
SELECT * FROM table WHERE kfz<>"" GROUP BY KFZ ORDER BY KFZ ASC
scheiterte klanglos.
Ist es wirklich Leerstring oder ist es NULL? Oder was anderes?
dedlfix.
Hallo dedlfix,
heißt <> nicht kleiner, größer "leer"? Müsste es nicht
SELECT * FROM table WHERE kfz != "" GROUP BY KFZ ORDER BY KFZ ASC
heißen?
Tach!
heißt <> nicht kleiner, größer "leer"? Müsste es nicht
SELECT * FROM table WHERE kfz != "" GROUP BY KFZ ORDER BY KFZ ASC
heißen?
Jein, <> heißt es bei SQL und anderen Sprachen, != ist die Syntax von C. Aber MySQL kann beides.
dedlfix.
Hello,
heißt <> nicht kleiner, größer "leer"? Müsste es nicht
SELECT * FROM table WHERE kfz != "" GROUP BY KFZ ORDER BY KFZ ASC
heißen?
kommt auf den Spaltentyp und die Abfrageparameter ("binary") an, ob Leerzeichen oder ähnlich aussehende Zeichen (#255) als leer angesehen werden.
Wenn man nicht sicher ist, was drin steht in der Spalte/Zelle, dann sollte man (leider) ein RegExp als Filter bemühen und dann auf Länge des Ergebnisses prüfen. Nur wenn die Länge des Ergebnisses = 0 ist, sthet nichts (bewertet) relevantes mehr drin im Element/Zelle/Feld. Dabei muss man immer die Sonderstellung von NULL
beachten, die je nach DBMS ggf. noch vorher ausgeschlossen/behandelt werden muss.
Liebe Grüße
Tom S.
Hallo Sophie,
heißt <> nicht kleiner, größer "leer"? Müsste es nicht
Nein, in Mysql bedeutet dies das Gleiche wie "!=", <> gilt aber als Empfehlung
SELECT * FROM table WHERE kfz != "" GROUP BY KFZ ORDER BY KFZ ASC
Gruss
Henry
Hello Henry,
heißt <> nicht kleiner, größer "leer"? Müsste es nicht
Nein, in Mysql bedeutet dies das Gleiche wie "!=", <> gilt aber als Empfehlung
Bei solchen Äußerungen bitte möglichst immer mit Link zur Specification ;-)
Liebe Grüße
Tom S.
Hallo Tom
Nein, in Mysql bedeutet dies das Gleiche wie "!=", <> gilt aber als Empfehlung
Bei solchen Äußerungen bitte möglichst immer mit Link zur Specification ;-)
Guter Einwand 😉
Hatte das schon so verinnerlicht, weil irgendwo gelesen, dass ich das nie nachgeprüft habe. Finde es auch, zumindest im Moment, nicht in der Spec, als Empfehlung. Danke für den Hinweis.
Gruss
Henry
Hello,
Nein, in Mysql bedeutet dies das Gleiche wie "!=", <> gilt aber als Empfehlung
Bei solchen Äußerungen bitte möglichst immer mit Link zur Specification ;-)
Guter Einwand 😉
Hatte das schon so verinnerlicht, weil irgendwo gelesen, dass ich das nie nachgeprüft habe. Finde es auch, zumindest im Moment, nicht in der Spec, als Empfehlung. Danke für den Hinweis.
Man könnte da z. B. auf der MySQL Operators-Seite nachsehen und da speziell unter "Nicht gleich".
Ich habe jetzt nicht näher gesucht, aber vielleicht findest Du dann ja den Hinweis mit der Empfehlung zu <>
?
Liebe Grüße
Tom S.
Tach!
Man könnte da z. B. auf der MySQL Operators-Seite nachsehen und da speziell unter "Nicht gleich".
Ich habe jetzt nicht näher gesucht, aber vielleicht findest Du dann ja den Hinweis mit der Empfehlung zu
<>
?
Steht dort nicht. Für MySQL ist das auch egal, weil es beides kann. Aber der SQL-Standard ist <> und wenn man kompatibel zum Standard sein möchte (muss man nicht), dann empfiehlt sich das <> quasi von selbst.
dedlfix.
Hello,
Ich habe jetzt nicht näher gesucht, aber vielleicht findest Du dann ja den Hinweis mit der Empfehlung zu
<>
?Steht dort nicht. Für MySQL ist das auch egal, weil es beides kann. Aber der SQL-Standard ist <> und wenn man kompatibel zum Standard sein möchte (muss man nicht), dann empfiehlt sich das <> quasi von selbst.
Ich weiß.
Trotzdem bin ich in der Vergangenheit im Forum öfter angemault worden, wenn ich <>
benutzt habe! :-P
Liebe Grüße
Tom S.
also wenn ich benutze
SELECT * FROM table WHERE kfz != "" GROUP BY KFZ ORDER BY KFZ ASC
kommt leider die Fehlermeldung
Parse error: syntax error, unexpected '" GROUP BY KFZ ORDER BY KFZ ASC' (T_CONSTANT_ENCAPSED_STRING)
Tach!
also wenn ich benutze
SELECT * FROM table WHERE kfz != "" GROUP BY KFZ ORDER BY KFZ ASC
kommt leider die Fehlermeldung
Parse error: syntax error, unexpected '" GROUP BY KFZ ORDER BY KFZ ASC' (T_CONSTANT_ENCAPSED_STRING)
Das ist aber kein Syntax-Fehler im (My)SQL-Statement, sondern ein Fehler in deinem PHP-Code. Wenn du den Statement-String mit ""
eingefasst hast, musst du darin vorkommende "
maskieren: \"
. Alternativ kannst du die einfachen Anführungszeichen nehmen, dann sind darin die "
probelemlos verwendbar, dafür aber eventuelle '
zu maskieren.
dedlfix.