我有一个采用以下形式的SQL查询:
UPDATE foo
SET flag=true
WHERE id=?我还有一个PHP数组,它有一个ID列表。除了解析之外,还有什么最好的方法可以做到这一点,如下所示……
foreach($list as $item){
$querycondition = $querycondition . " OR " . $item;
}..。并在WHERE子句中使用输出?
发布于 2008-09-02 15:29:19
这将实现相同的事情,但可能不会产生太多的速度提高,但看起来更好。
mysql_query("UPDATE foo SET flag=true WHERE id IN (".implode(', ',$list).")");发布于 2008-09-02 15:27:12
您应该能够使用IN子句(假设您的数据库支持它):
UPDATE foo SET flag=true WHERE id in (1, 2, 3, 5, 6)
发布于 2008-09-02 15:30:53
Use IN语句。提供逗号分隔的键值列表。使用implode函数可以很容易地做到这一点。
UPDATE foo SET flag = true WHERE id IN (1, 2, 3, 4, 5, ...)或者,您可以使用condition:
UPDATE foo SET flag = true WHERE flag = false或者子查询:
UPDATE foo SET flag = true WHERE id IN (SELECT id FROM foo WHERE .....)https://stackoverflow.com/questions/39792
复制相似问题