2012-01-28 11 views
0

WHERE句にfloorRatingを使用したいが、エラーが発生する:Unknown column in where clausewhere句に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は文字列ではなく文字列でなければなりません。その代わりに、代わりに「HAVING」を使用することができます。 – Ktash

答えて

1

問題は、あなたがMySQLの機能FLOORを使用しようとしているということではありません、それはあなたがあなたのに(自分のWHERE句で列の別名を使用することができないのですMySQLでPHP関数を使用することはできません - それは別の言語です)。 WHERE句が、それは何か(簡単にするために)前で動作するように何行を知っている意味、前に、あなたのSELECT sおよびその他のステートメントを評価されるため

です。

これらのケースではHAVINGを使用する必要があります。となります。