我有一个SQL查询,采用以下形式:
UPDATE foo
SET flag=true
WHERE id=?
Run Code Online (Sandbox Code Playgroud)
我还有一个PHP数组,其中包含一个ID列表.除了解析之外,实现此目的的最佳方法是什么,如下所示,......
foreach($list as $item){
$querycondition = $querycondition . " OR " . $item;
}
Run Code Online (Sandbox Code Playgroud)
...并使用WHERE条款中的输出?
这将实现同样的目标,但可能不会产生很大的速度提升,但看起来更好.
mysql_query("UPDATE foo SET flag=true WHERE id IN (".implode(', ',$list).")");
Run Code Online (Sandbox Code Playgroud)
使用IN语句.提供以逗号分隔的键值列表.您可以使用implode功能轻松完成.
UPDATE foo SET flag = true WHERE id IN (1, 2, 3, 4, 5, ...)
Run Code Online (Sandbox Code Playgroud)
或者你可以使用条件:
UPDATE foo SET flag = true WHERE flag = false
Run Code Online (Sandbox Code Playgroud)
或子查询:
UPDATE foo SET flag = true WHERE id IN (SELECT id FROM foo WHERE .....)
Run Code Online (Sandbox Code Playgroud)