Can you use an alias in the WHERE clause in mysql?

前端 未结 5 1156
予麋鹿
予麋鹿 2020-11-22 04:11

I need to use an alias in the WHERE clause, but It keeps telling me that its an unknown column. Is there any way to get around this issue? I need to select records that have

5条回答
  •  感情败类
    2020-11-22 04:26

    You could use a HAVING clause, which can see the aliases, e.g.

     HAVING avg_rating>5
    

    but in a where clause you'll need to repeat your expression, e.g.

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

    BUT! Not all expressions will be allowed - using an aggregating function like SUM will not work, in which case you'll need to use a HAVING clause.

    From the MySQL Manual:

    It is not allowable to refer to a column alias in a WHERE clause, because the column value might not yet be determined when the WHERE clause is executed. See Section B.1.5.4, “Problems with Column Aliases”.

提交回复
热议问题