Verwenden Sie Aliase in der MySQL-WHERE-Klausel
In MySQL werden Aliase häufig verwendet, um abgeleiteten Spalten temporäre Namen zu geben. Obwohl sie praktisch als Referenz sind, kann ihre Verwendung in einer WHERE-Klausel zu Fehlern führen.
MySQL schränkt referenzierende Spaltenaliase in der WHERE-Klausel ein. Dies liegt daran, dass der Spaltenwert möglicherweise noch nicht bestimmt ist, wenn die WHERE-Klausel ausgeführt wird. Daher löst die Angabe eines Alias in der WHERE-Klausel einen Fehler „Unbekannte Spalte“ aus.
Lösung
Um diese Einschränkung zu überwinden, gibt es mehrere Problemumgehungen:
<code class="language-sql">HAVING avg_rating > 5</code>
<code class="language-sql">WHERE (sum(reviews.rev_rating)/count(reviews.rev_id)) > 5</code>
Einschränkungen
Bitte beachten Sie, dass nicht alle Ausdrücke in der WHERE-Klausel zulässig sind. Aggregatfunktionen wie SUM erfordern die HAVING-Klausel.
Wie im MySQL-Handbuch angegeben:
„Verweise auf Spaltenaliase in einer WHERE-Klausel sind nicht zulässig, da der Spaltenwert möglicherweise nicht bestimmt wurde, als die WHERE-Klausel ausgeführt wird.“
Das obige ist der detaillierte Inhalt vonKann ich Spaltenaliase in der WHERE-Klausel von MySQL verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!