我正在从 MySQL 表中选择行,如下所示:
SELECT id, name, code FROM table
我现在要做的是选择代码以数组中指定的字符序列开头的行。什么是最佳实践 - a) 更改 MySQL 查询并使用 SUBSTRING 和 IN,或 b) 稍后使用 PHP 过滤行?
一种)
$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 个元素。