sql >> Base de Datos >  >> RDS >> Mysql

¿Puedes usar un alias en la cláusula WHERE en mysql?

Podría usar una cláusula HAVING, que puede ver los alias, por ejemplo,

 HAVING avg_rating>5

pero en una cláusula where necesitará repetir su expresión, p.

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

¡PERO! No se permitirán todas las expresiones:usar una función de agregación como SUM no funcionará, en cuyo caso deberá usar una cláusula HAVING.

Del Manual de MySQL :

No está permitido hacer referencia a un alias de columna en una cláusula WHERE, porque es posible que el valor de la columna aún no se determine cuando se ejecuta la cláusula WHERE. Consulte Sección B.1.5.4,“Problemas con Alias ​​de columna” .