Mysql
 sql >> Database >  >> RDS >> Mysql

Puoi usare un alias nella clausola WHERE in MySQL?

Potresti usare una clausola HAVING, che può vedere gli alias, ad es.

 HAVING avg_rating>5

ma in una clausola where dovrai ripetere la tua espressione, ad es.

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

MA! Non tutte le espressioni saranno consentite:l'utilizzo di una funzione di aggregazione come SUM non funzionerà, nel qual caso dovrai utilizzare una clausola HAVING.

Dal Manuale MySQL :

Non è consentito fare riferimento all'alias di colonna in una clausola WHERE, perché il valore della colonna potrebbe non essere ancora determinato quando viene eseguita la clausola WHERE. Vedere Sezione B.1.5.4, "Problemi con Alias ​​di colonna” .