MySQL-abfrage mit ungleich liefert leeres ergebnis
paco
- datenbank
0 Vinzenz Mai0 paco
0 Vinzenz Mai
hallo,
ich bin gerade etwas verwirrt. Ich liste Datensätze aus einer MySQL-Datenbank
auf und wollte jetzt einzelne davon ausblenden.
Dazu habe ich ein Feld "ausblenden" in die entsprechende Tabelle eingefügt, das bei bedarf auf true gesetzt wird, um dann beim auflisten die Einträge mit true wegzulassen.
Meine Abfrage:
SELECT projekte.id, projekt, prioritaet, ausblenden FROM projekte
LEFT JOIN baustein_projektstart
ON
projekte.id = baustein_projektstart.projekt_id
liefert mir das gewünschte Ergebnis.
Mit dem Zusatz
WHERE ausblenden = "true"
ebenfalls. Aber mit
WHERE ausblenden <> "true" bzw WHERE ausblenden != "true"
bekomme ich immer ein leeres Resultat zurück. Das ausblenden-Feld ist ein varchar, das true wird also als string da reingeschrieben. Darf man das nicht? Ist true irgendwie reserviert?
Oder ist die syntax mit <> bzw != falsch???
MySQL ist Version 5.0.67
Vielen Dank schonmal,
Paco
Hallo,
ich bin gerade etwas verwirrt.
ich auch.
Mit dem Zusatz
WHERE ausblenden = "true"
ebenfalls. Aber mit
WHERE ausblenden <> "true" bzw WHERE ausblenden != "true"
bekomme ich immer ein leeres Resultat zurück. Das ausblenden-Feld ist ein varchar, das true wird also als string da reingeschrieben.
Bitte mit Beispieldatensätzen und erhaltener sowie erwarteter Ergebnisliste zum Nachvollziehen. Das was Deiner Beschreibung entspricht, läßt sich nicht nachvollziehen.
Freundliche Grüße
Vinzenz
Hallo,
ich bin gerade etwas verwirrt.
ich auch.
Mit dem Zusatz
WHERE ausblenden = "true"
ebenfalls. Aber mitWHERE ausblenden <> "true" bzw WHERE ausblenden != "true"
bekomme ich immer ein leeres Resultat zurück. Das ausblenden-Feld ist ein varchar, das true wird also als string da reingeschrieben.
Bitte mit Beispieldatensätzen und erhaltener sowie erwarteter Ergebnisliste zum Nachvollziehen. Das was Deiner Beschreibung entspricht, läßt sich nicht nachvollziehen.
Freundliche Grüße
Vinzenz
ok. Mein Problem läßt sich auch mit einfachster Abfrage reproduzieren
tabelle projekte:
+--+--------+---------+--------+--------+--------+------------+
id projekt daten1 daten2 daten3 daten4 ausblenden
+--+--------+---------+--------+--------+--------+------------+
1 pr1 bla blu blo bli NULL
+--+--------+---------+--------+--------+--------+------------+
2 pr2 haha huhu hihi hoho true
+--+--------+---------+--------+--------+--------+------------+
3 pr3 eins zwei drei vier NULL
SELECT projekt, daten1, ausblenden FROM projekte
WHERE ausblenden <> "true" liefert ein leeres Resultat.
Hallo,
+--+--------+---------+--------+--------+--------+------------+
id projekt daten1 daten2 daten3 daten4 ausblenden
+--+--------+---------+--------+--------+--------+------------+
1 pr1 bla blu blo bli NULL
+--+--------+---------+--------+--------+--------+------------+
2 pr2 haha huhu hihi hoho true
+--+--------+---------+--------+--------+--------+------------+
3 pr3 eins zwei drei vier NULL
siehe https://forum.selfhtml.org/?t=191233&m=1275044:
NULL-Werte und Leerstrings sind verschiedene Inhalte. Du willst auf NULL testen.
Freundliche Grüße
Vinzenz
Hallo,
+--+--------+---------+--------+--------+--------+------------+
id projekt daten1 daten2 daten3 daten4 ausblenden
+--+--------+---------+--------+--------+--------+------------+
1 pr1 bla blu blo bli NULL
+--+--------+---------+--------+--------+--------+------------+
2 pr2 haha huhu hihi hoho true
+--+--------+---------+--------+--------+--------+------------+
3 pr3 eins zwei drei vier NULLsiehe https://forum.selfhtml.org/?t=191233&m=1275044:
NULL-Werte und Leerstrings sind verschiedene Inhalte. Du willst auf NULL testen.Freundliche Grüße
Vinzenz
hab mir schon gedacht, dass es damit zu tun hat, dachte nur, dass unter nicht-true halt alles andere fallen müßte, also sowohl leer-strings als auch NULL. Naja, habs hingekriegt, muß jetzt nur zum wieder einblenden auch wieder NULL reinschreiben.
Vielen Dank!
Paco
Hallo,
hab mir schon gedacht, dass es damit zu tun hat, dachte nur, dass unter nicht-true halt alles andere fallen müßte, also sowohl leer-strings als auch NULL. Naja, habs hingekriegt, muß jetzt nur zum wieder einblenden auch wieder NULL reinschreiben.
so etwas kann man auch mit '0' (Standardwert) und '1' machen.
Nur mal so zur Ergänzung.
Gruß Gunther
Hallo Ingrid,
WHERE ausblenden <> "true" bzw WHERE ausblenden != "true"
bekomme ich immer ein leeres Resultat zurück.
dafür gibt es eine Erklärung.
Oder ist die syntax mit <> bzw != falsch???
Nein nicht falsch, aber Deinem Fall nicht angemessen :-)
Wenn nichts eingegeben ist, dann hat der Inhalt Deiner Spalte "ausblenden" den speziellen Wert NULL. Auf diesen ist mit IS NULL zu prüfen.
Freundliche Grüße
Vinzenz