Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Können Sie einen Alias ​​in der WHERE-Klausel in mysql verwenden?

Sie könnten eine HAVING-Klausel verwenden, die kann siehe die Aliase, z. B.

 HAVING avg_rating>5

aber in einer where-Klausel müssen Sie Ihren Ausdruck wiederholen, z.

 WHERE (sum(reviews.rev_rating)/count(reviews.rev_id))>5

SONDERN! Nicht alle Ausdrücke sind erlaubt - die Verwendung einer Aggregatfunktion wie SUM funktioniert nicht, in diesem Fall müssen Sie eine HAVING-Klausel verwenden.

Aus dem MySQL-Handbuch :

Es ist nicht zulässig, in einer WHERE-Klausel auf einen Spaltenalias zu verweisen, da der Spaltenwert möglicherweise noch nicht bestimmt ist, wenn die WHERE-Klausel ausgeführt wird. Siehe Abschnitt B.1.5.4, „Probleme mit Spaltenaliase“ .