次のように MySQL テーブルから行を選択しています。
SELECT id, name, code FROM table
ここでやりたいことは、コードが配列で指定された一連の文字で始まる行を選択することです。ベスト プラクティスは何ですか? a) MySQL クエリを変更して SUBSTRING と IN を使用するか、b) PHP を使用して後で行をフィルター処理しますか?
a)
$qsql = mysql_query("SELECT id, name, code FROM table WHERE SUBSTRING(code, 1, 2) IN ('AB', 'BA', 'ZK', ...)");
while($sql = mysql_fetch_assoc($qsql)) {
// Do something
}
または b)
$codes = array('AB', 'BA', 'ZK', ...);
$qsql = mysql_query("SELECT id, name, code FROM table");
while($sql = mysql_fetch_assoc($qsql)) {
if(!in_array($sql['code'], $codes))
continue;
// Do something
}
コード配列には、おそらく 30 個までの要素が含まれます。