重複の可能性:
「WHERE…IN」クエリを使用したPDO
私の検索フォームには、たくさんのチェックボックスとフィールドがあります。
一部のチェックボックスはグループに属しています。
グループの例、都市。
次のようにクエリします
SELECT id, city_id, area, city FROM an_objects
WHERE livedays > 0 AND type_id = :typeoffer AND rubric_id = :typerelaty
AND CASE
WHEN :1r = '' THEN true
ELSE city_id IN (:1r, :2r, :99r, :100r)
END
GROUP BY id ORDER BY date ASC
この例では、4つのパラメーター、つまり100を入力する必要があります。
でもやりたい
SELECT id, city_id, area, city FROM an_objects
WHERE livedays > 0 AND type_id = :typeoffer AND rubric_id = :typerelaty
AND CASE
WHEN :1r = '' THEN true
ELSE city_id IN (:arrCity)
END
GROUP BY id ORDER BY date ASC
文字列はそう
if(isset($param['city']))
{
for($i=0; $i < 9; $i++)
{
if(isset($param['city'][$i]))
$raion .= $param['city'][$i] . ",";
else
break;
}
$arrCity = substr($city, 0, -1);
}
次の
(:arrCity)を( "1,2,3,4,5,6")に置き換えています。
これは単一の文字列として取得されますが、次の方法
(:arrCity)(1,2,3,4,5,6)