2012-01-28 170 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而不是在這些情況下,其中工作。