Heim > Datenbank > MySQL-Tutorial > Kann ich Spaltenaliase in der WHERE-Klausel von MySQL verwenden?

Kann ich Spaltenaliase in der WHERE-Klausel von MySQL verwenden?

Patricia Arquette
Freigeben: 2025-01-20 01:52:08
Original
533 Leute haben es durchsucht

Can I Use Column Aliases in MySQL's WHERE Clause?

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:

  • HAVING-Klausel: Die HAVING-Klausel kann auf den Alias ​​nach der WHERE-Klausel zugreifen, wenn der Spaltenwert bekannt ist. Um beispielsweise Datensätze mit einer durchschnittlichen Bewertung von mehr als 5 auszuwählen (berechnet als sum(reviews.rev_rating)/count(reviews.rev_id) als avg_rating), würden Sie die folgende HAVING-Klausel verwenden:
<code class="language-sql">HAVING avg_rating > 5</code>
Nach dem Login kopieren
  • Einen Ausdruck wiederholen: Alternativ können Sie den Alias-Ausdruck direkt in der WHERE-Klausel wiederholen. Diese Methode funktioniert jedoch nur mit Nicht-Aggregatfunktionen. Um beispielsweise Datensätze mit einer durchschnittlichen Bewertung von mehr als 5 auszuwählen:
<code class="language-sql">WHERE (sum(reviews.rev_rating)/count(reviews.rev_id)) > 5</code>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage