Nehmen Sie den folgenden Ausdruck: FALSE AND (expression)
Ist MySQL Logik Auswertung faul/Kurzschluss in JOIN-Klausel?
Wird MySQL den Ausdruck auswerten oder einfach nur so schnell weitergehen, wie es sieht FALSE
?
Einige Hintergrund context-- ich eine Abfrage, indem Sie beschleunigen wollte: auf
JOIN... ON (indexed_column1=indexed_column2 AND non_indexed_column_a=non_indexed_column_b)
Für Hintergrund, warum ich diese Abfrage mache see this answer
Wenn es wird immer non_indexed_column_a=non_indexed_column_b
bewerten dann ist damit keine Zeit eingespart.
ich die Abfrage-Optimierer würden beseitigen völlig diesen trivialen Fall denken würde. In Fällen, die nicht statisch eliminiert werden können, garantieren solche Engines wie SQL Server (gewährt, nicht MySQL) ** keine Bewertungsreihenfolge **; wie dies tatsächlich hilft ihnen effizienter mit Indizes und so. Es wäre interessant zu wissen, wie die MySQL-spezifische Implementierung funktioniert, +1. –
Ich habe etwas mehr Kontext hinzugefügt – babonk
http://stackoverflow.com/questions/789231/is-the-sql-where-clause-short-circuit-evaluated (nicht * spezifisch * zu MySQL, aber gut nie-die- weniger), http://stackoverflow.com/questions/4449105/mysql-and-condition –