私は以下の配列を持っています
$titles=array("Dr.","Ms.","Mr.");
foreach ループの後、以下のクエリを作成します
SELECT * FROM `table` WHERE title = 'Dr.' or title = 'Ms.' or title = 'Mr.' ) group by sentences
から出力開始
Mr.Ms.Mr.Dr.
DRをPUTしたい。array() 内で順番に並んでいる Mr. よりもまずその Ms.
入力がサニタイズされている限り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