Mysql
 sql >> Base de données >  >> RDS >> Mysql

Pouvez-vous utiliser un alias dans la clause WHERE de mysql ?

Vous pouvez utiliser une clause HAVING, qui peut voir les alias, par exemple

 HAVING avg_rating>5

mais dans une clause where, vous devrez répéter votre expression, par exemple

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

MAIS! Toutes les expressions ne seront pas autorisées - l'utilisation d'une fonction d'agrégation telle que SUM ne fonctionnera pas, auquel cas vous devrez utiliser une clause HAVING.

À partir du Manuel MySQL :

Il n'est pas permis de faire référence à un alias de colonne dans une clause WHERE, car la valeur de la colonne peut ne pas encore être déterminée lors de l'exécution de la clause WHERE. Voir Section B.1.5.4,« Problèmes avec Alias ​​de colonne" .