dedlfix: In welcher Reihenfolge erfolgen die Abfragen in einem SELECT Bef

Beitrag lesen

Tach!

Wenn eine WHERE Abfrage stattfindet, in der
WHERE a=1 AND b=1 AND c=1 AND d=1.
steht, wird dann wenn a=1 schon mal nicht zutrifft, trotzdem noch die weiteren WHERE Abfragen durchgegangen, oder bei der ersten falschen Abfrage abgebrochen.

Diese Frage beantwortet dir die Dokumentation des von dir nicht genannten Systems. Üblicherweise findet ein Kurzschlussverfahren statt. Wenn das Ergebnis sich durch weitere Bedingungen nicht mehr ändern kann, werden diese Bedingungen nicht mehr ausgewertet und eventuelle Funktionsaufrufe in diesen nicht ausgeführt.

Weiter noch, wenn in dem vorderem Bereich, also zwischen
SELECT. FROM
eine Berechnung steht, wird diese zuerst ausgeführt, oder nur wenn die anschließenden WHERE Abfragen zutreffen?

Die Reihenfolge der Klauseln müsste sein: FROM (inkl. JOIN), WHERE, SELECT, GROUP BY, HAVING, ORDER BY (, LIMIT). Ab GROUP BY kann man auf die unter SELECT vergebenen Aliase zugreifen, in WHERE geht das nicht. Die Datenmenge wird zunächst anhand der WHERE-Bedingung eingeschränkt, bevor Ausdrücke in SELECT berechnet werden.

dedlfix.