Michael: SELECT abfrage WHERE -> kein Treffer dann...

Ich habe ein Abfrage in der ich alle Datensätze aus einem bestimmten Staat selectieren möchte, diese mache ich so

SELECT  * FROM table WHERE state='$state';

Nun kann es aber vorkommen das es dabei keinen Treffer gibt. In diesem Fall möchte ich, das dann automatisch nach germany gesucht wird. Also das die Variable $state den Wert von "germany" hat.

Ist es es möglich eine einizge SelectAbfrage zu machen ohne zweimal hintereinander eine SELECT Abfrage zauszuführen?

Michi

  1. Tach!

    Ist es es möglich eine einizge SelectAbfrage zu machen ohne zweimal hintereinander eine SELECT Abfrage zauszuführen?

    Ist so am einfachsten. Alternative wäre, dem Where gleich den passenden Suchparameter zu geben. Das setzt ein IF() voraus, welches als Bedingung prüft, ob für das eingegebene Land Daten existieren, dann dieses Land zurückgibt, anderenfalls deinen Defaultwert.

    Die Prüfung könnte so aussehen: EXISTS(SELECT * FROM tabelle WHERE land=eingabe). Ich weiß aber nicht, ob das EXISTS in einem IF() angegeben werden kann. Letztendlich hast du aber trotzdem die Query nahezu doppelt notiert.

    Beachte den Kontextwechsel, wenn du keine Prepared Statements verwendest!

    dedlfix.