IF ステートメントを使用して実行する MySQL コードを「選択」する際に問題が発生しています。これが私のコードです:
if ($numRows == 0 && count($terms) == 3) {
$query2 .= " AND ( i.ING = '" . join("' OR i.ING = '", $terms) . "')". $queryType ." GROUP BY r.recipeID
HAVING COUNT(DISTINCT i.ING ) = 2)";
$termCount = 2;
}
if ($numRows == 0 && $termCount == 2) {
$query2 .= " AND ( i.ING = '" . join("' OR i.ING = '", $terms) . "')". $queryType ." GROUP BY r.recipeID
HAVING COUNT(DISTINCT i.ING ) = 1)";
これは以下を出力します:
AND ( i.ING = 'wonton wrappers' OR i.ING = 'grape jelly' OR i.ING = 'lard') GROUP BY r.recipeID HAVING COUNT(DISTINCT i.ING ) = 2)
AND ( i.ING = 'wonton wrappers' OR i.ING = 'grape jelly' OR i.ING = 'lard') GROUP BY r.recipeID HAVING COUNT(DISTINCT i.ING ) = 1)
ただし、2行目を使用するクエリの一部にしたいだけです。ただし、最初の if ステートメントも常に true であるため、その行も出力されます。
したがって、2つのステートメントに基づいて得たい結果は次のとおりです。
AND ( i.ING = 'wonton wrappers' OR i.ING = 'grape jelly' OR i.ING = 'lard') GROUP BY r.recipeID HAVING COUNT(DISTINCT i.ING ) = 1)
あまりにも長い間見てきて、見落としている最も単純なものであるかどうかに気付かない場合があります。
何か案は?
ありがとうございました。