入力がサニタイズされている限りimplode
、ステートメントを準備するために使用できます。
$stmt = 'SELECT * FROM `table` ';
$stmt .= "WHERE title = '" . implode("' OR title = '", $titles) . "'";
結果
SELECT * FROM `table` WHERE title = 'Dr.' OR title = 'Ms.' OR title = 'Mr.'
デモを見る
代わりに次を使用できますIN
。
$stmt = 'SELECT * FROM `table` ';
$stmt .= "WHERE title IN ('" . implode("', '", $titles) . "')";
結果
SELECT * FROM `table` WHERE title IN ('Dr.', 'Ms.', 'Mr.')
を修正する必要がありますGROUP BY
。あなたはそれを正しく使用していません。
タイトルの順序を並べ替えたい場合は、次の方法を試してください。
ORDER BY
CASE
WHEN title = 'Dr' THEN 1
WHEN title = 'Ms.' THEN 2
WHEN title = 'Mr.' THEN 3
ELSE 4
END