Heim >Datenbank >MySQL-Tutorial >Warum tritt „Unbekannte Spalte in der Where-Klausel' auf, wenn Aliase in SQL-Abfragen verwendet werden?
SQL-Fehler: „Unbekannte Spalte in der Where-Klausel“
Beim Ausführen einer SQL-Abfrage ähnlich:
<code class="language-sql">SELECT u_name AS user_name FROM users WHERE user_name = "john";</code>
Möglicherweise tritt der Fehler „Unbekannte Spalte ‚Benutzername‘ in der Where-Klausel“ auf. Dieser Fehler liegt daran, dass die SQL-Analysereihenfolge von rechts nach links erfolgt.
Konkret wird die WHERE
-Klausel vor der SELECT
-Klausel analysiert. Beim Parsen der WHERE
-Klausel wurde der Alias „user_name“ noch nicht auf die Spalte „u_name“ angewendet. Daher interpretiert die Datenbank „Benutzername“ als unbekannte Spalte und gibt einen Fehler aus.
Um dieses Problem zu lösen, können Sie den ursprünglichen Spaltennamen „u_name“ in der WHERE
-Klausel verwenden:
<code class="language-sql">SELECT u_name AS user_name FROM users WHERE u_name = "john";</code>
Alternativ können Sie eine Unterabfrage verwenden, um der Spalte einen Alias zuzuweisen, bevor Sie den Alias in der WHERE
-Klausel verwenden:
<code class="language-sql">SELECT user_name FROM (SELECT u_name AS user_name FROM users) AS subquery WHERE user_name = "john";</code>
Das obige ist der detaillierte Inhalt vonWarum tritt „Unbekannte Spalte in der Where-Klausel' auf, wenn Aliase in SQL-Abfragen verwendet werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!