2012-01-28 106 views
0

我想在WHERE子句中使用floorRating,但出现错误:Unknown column in where clause在where子句中包含PHP函数?

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应该是一个int不是字符串(从它的外观),你可以使用'HAVING'来代替它,虽然它不是性能。 – Ktash 2012-01-28 17:26:07

回答

1

的问题不在于你想使用MySQL的函数FLOOR,那就是你不能在你的WHERE子句中使用列别名(虽然你不能在MySQL中使用PHP函数 - 这是一种不同的语言)。

这是因为WHERE子句评估以前SELECT S和其他报表,这意味着它知道行与之前别的(简化)上班。

您需要使用HAVING而不是在这些情况下,其中工作。