WHERE status IN
Derk
- php
Guten Abend,
ich dachte mit
WHERE status IN (1, 2) ORDER by id DESC
sage ich, dass ich nur die Datensätze haben möchte die den status 1 ODER 2 haben? In meiner Datenbank befinden sich auch noch Datensätze die den status 3 haben, die möchte ich nicht mit auslesen.
Was mache ich falsch?
Guten Abend,
so geht es
WHERE status 1 AND status 2 AND NOT status = 3
Hallo Derk,
so geht es
WHERE status 1 AND status 2 AND NOT status = 3
Das wäre äußerst blöd, wenn du 100 Status hättest.
where status = 1 or status = 2
Bis demnächst
Matthias
Hallo Matthias,
hab noch eine andere Lösung verstanden. Ich glaube diese ist besser, denn ich sage welche IDs ich NICHT haben möchte:
AND NOT status = 3
Hab ich hier https://dev.mysql.com/doc/refman/5.1/en/non-typed-operators.html gelesen.
Tach!
so geht es
WHERE status 1 AND status 2 AND NOT status = 3
garantiert nicht, denn das ist syntaktisch und logisch falsch. Gesetzt den Fall, nach den ersten beiden status
stehen bei dir Gleichheitszeichen, dann kann ich dir versprechen, dass der Status nie gleichzeitig 1 AND 2 sein kann. Du musst beim Formulieren deiner Abfragen stets im Hinterkopf haben, dass die Bedingungen auf jeden Datensatz einzeln angewendet werden und nicht auf die gesamte Menge, sowie dass die Logikoperatoren etwas anders funktionieren als die umgangssprachlichen "und" und "oder".
dedlfix.
Tach!
ich dachte mit
WHERE status IN (1, 2) ORDER by id DESC
sage ich, dass ich nur die Datensätze haben möchte die den status 1 ODER 2 haben?
Ja, außerdem sagst du damit, dass die Ergebnismenge absteigend nach der id sortiert sein soll. Letzteres ist meist keine gescheite Vorgehensweise, weil eine ID identifizieren soll und nicht zwangsläufig garantiert zeitlich aufsteigende Werte hat.
In meiner Datenbank befinden sich auch noch Datensätze die den status 3 haben, die möchte ich nicht mit auslesen.
Was mache ich falsch?
Kann ich dir nicht sagen, weil ich aus dem kleinen Stückchen keinen allgemeinen Fehler erkennen kann. Die Datenbankstruktur und Beispieldatensätze wären zur Analyse hilfreich.
dedlfix.