Karl-Franz zu Ferdinand von und bei Dümpelshofen: IF in WHERE Abfrage

Beitrag lesen

deshalb die IF abfrage

SELECT * FROM table WHERE staat=2

dann kommen die Datensätze

if, titel, staat, stadt

1   hallo   2    5
2   huhuh   2    4

wenn aber staat=0 ist

sollen eben alle Datensätze kommen

Wie im Ansatz schon geschrieben: Prüfe PHP-seitig $staat > 0 und führe den entsprechenden SQL-Befehl aus:

if ($staat > 0) {
    machsql("select * from tabelle where staat=" . $staat);
}
else {
    machsql("select * from tabelle");
}

Dein Versuch, die Prüfung in die Datenbank auszulagern, läuft im Falle von $staat <= 0 auf den SQL-Befehl "select * from tabelle where true" hinaus. Eine where-Klausel, deren Ergebnis von vornherein feststeht (nämlich "ja"), ist überflüssig. Vermeide sie.