我想在WHERE子句中使用floorRating
,但我收到错误:Unknown column in where clause
。
SELECT ID,
floor(SUM(Rating) / COUNT(*)) AS `floorRating`
FROM `Reviews`
WHERE floorRating = 1
GROUP BY `ID`
我也试过这个但是没有用:
SELECT ID,
FROM `Reviews`
WHERE floor(SUM(Rating) / COUNT(*)) = 1
GROUP BY `ID`
在此我得到Invalid use of group function
。
如何让这种类型的查询起作用?
答案 0 :(得分:1)
它不能是任何PHP函数,它必须是MYSQL。你很幸运,因为地板也存在。
where
不起作用时,请尝试having
。
HAVING floorRating = 1
答案 1 :(得分:1)
问题不在于您尝试使用MySQL函数FLOOR
,而是您不能在WHERE
子句中使用列别名(尽管您不能使用MySQL中的PHP函数 - 它是一种不同的语言)。
这是因为WHERE
子句在<{strong> 之前的<{1}}和其他语句中进行了评估,这意味着它知道在其他任何事情之前使用哪些行(为了简化)。
在这些将工作的情况下,您需要使用SELECT
。