2017-07-13 14 views
1

クエリ内の計算を使用して結果を選択し、これらの結果をWHERE文内で比較したいと考えています。しかし何とかそれは動作しません。理由を知っていると思いますか?ここに私のコードです:WHERE句のmysql計算結果

$statement = $pdo->prepare("SELECT * , `ft_lteam` - `ht_lteam` AS `ht2_lteam`, 
`ft_vteam` - `ht_vteam` AS `ht2_vteam` 
FROM `sca` 
WHERE `ht2_lteam` > `ht2_vteam`"); 
$statement->execute(array('Max')); 

助けが素晴らしいでしょう。ありがとう!

+0

$statement = $pdo->prepare("SELECT * , 'ft_lteam' - 'ht_lteam' AS 'ht2_lteam', 'ft_vteam' - 'ht_vteam' AS 'ht2_vteam' FROM 'sca' HAVING 'ht2_lteam' > 'ht2_vteam'"); $statement->execute(array('Max')); 

クリア例どのように "動作しませんか"?エラーですか?何も起こりませんか?それはベッドに横たわって一日中テレビを見ますか?とにかく、これは動作しません: 'where'節で同じ式を繰り返すか、エイリアス名でサブクエリやCTEに入れ、' select'/'where'をベースにします。 (免責事項:MySQLがCTEをサポートしているかどうかわかりません) –

+0

[MySQLクエリのWHERE句で列エイリアスを使用するとエラーが発生する](https://stackoverflow.com/questions/942571/using-column-alias- in-where-clause-of-mysql-query-produced-an-error) –

+0

https://stackoverflow.com/questions/2905292/where-vs-having – abigperson

答えて

2

あなたは計算列でフィルタリングするためにHAVING使用することができます:ここ

SELECT col1,col2,col3,(col1*col2*col3) AS result, number FROM table 
HAVING result > number 
ORDER by result