Heim >Datenbank >MySQL-Tutorial >Wie kann ich Aliase in einer SQL-WHERE-Klausel korrekt referenzieren?
Aliase in der WHERE-Klausel referenzieren
Bei der Arbeit mit SQL-Abfragen ist es oft notwendig, Aliase zu verwenden, um Tabellen oder Ausdrücken temporäre Namen zu geben . Dies kann die Lesbarkeit und Wartbarkeit Ihres Codes verbessern. Es ist jedoch wichtig, sich der Einschränkungen bei der Referenzierung von Aliasen in verschiedenen Teilen der Abfrage bewusst zu sein.
Das Problem
Im bereitgestellten Beispiel wird ein Versuch unternommen um auf einen Alias (_year) in der WHERE-Klausel einer Abfrage zu verweisen. Dies führt jedoch zu einem Fehler:
ERROR: column "_year" does not exist
Dieser Fehler tritt auf, weil die WHERE-Klausel zuerst und vor der SELECT-Klausel ausgeführt wird. Zum Zeitpunkt der Ausführung hat die Datenbank die Aliasdefinition in der SELECT-Klausel noch nicht gefunden und kann sie daher nicht erkennen.
Lösung
Um dieses Problem zu umgehen, Sie können die Abfrage so umschreiben, dass der Alias in der WHERE-Klausel selbst definiert wird. Dadurch wird sichergestellt, dass der Alias verfügbar ist, wenn die WHERE-Klausel ausgeführt wird:
SELECT SUBSTRING(pk, 6, 2)::INT AS _year FROM listing WHERE SUBSTRING(pk, 6, 2)::INT > 90
Durch Platzieren der Aliasdefinition in der WHERE-Klausel können Sie innerhalb derselben Klausel auf den Alias verweisen, ohne dass Fehler auftreten.
Das obige ist der detaillierte Inhalt vonWie kann ich Aliase in einer SQL-WHERE-Klausel korrekt referenzieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!