当前位置:  开发笔记 > 编程语言 > 正文

如何在单个SQL查询中执行多个更新?

如何解决《如何在单个SQL查询中执行多个更新?》经验,为你挑选了3个好方法。

我有一个SQL查询,采用以下形式:

UPDATE foo
SET flag=true
WHERE id=?

我还有一个PHP数组,其中包含一个ID列表.除了解析之外,实现此目的的最佳方法是什么,如下所示,......

foreach($list as $item){  
    $querycondition = $querycondition . " OR " . $item;  
}

...并使用WHERE条款中的输出?



1> Chris Bartow..:

这将实现同样的目标,但可能不会产生很大的速度提升,但看起来更好.

mysql_query("UPDATE foo SET flag=true WHERE id IN (".implode(', ',$list).")");



2> matt b..:

您应该能够使用IN子句(假设您的数据库支持它):

UPDATE foo SET flag=true WHERE id in (1, 2, 3, 5, 6)



3> Michał Rudni..:

使用IN语句.提供以逗号分隔的键值列表.您可以使用implode功能轻松完成.

UPDATE foo SET flag = true WHERE id IN (1, 2, 3, 4, 5, ...)

或者你可以使用条件:

UPDATE foo SET flag = true WHERE flag = false

或子查询:

UPDATE foo SET flag = true WHERE id IN (SELECT id FROM foo WHERE .....)

推荐阅读
郑小蒜9299_941611_G
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有