使用mySQL更新多行

时间:2010-11-28 18:04:48

标签: mysql sql-update

我的桌子看起来像这样:

property   propertyid  value
 active     1           1
 datastore  2           apc

如何制定SQL查询以更新几行,而不更新所有行。 IE,如果有6行,更新2,3和4但不是1,5和6?

感谢。

1 个答案:

答案 0 :(得分:9)

如果要在具有相同值的所有行上更新相同的列,则可以使用此类查询轻松完成。

UPDATE property SET value=5 where propertyid IN(2,3,4)

这会将值5设置为属性id为2,3或4的所有行。

如果要更新具有不同值的不同行,我恐怕您必须编写单独的SQL语句。您可以使用CASE语句来提供SQL查询,但使用简单的SQL查询可以实现更高的可读性和可维护性。

假设您正在从应用程序操作数据库,我很确定无论您将使用何种编程语言,都可以轻松编写1个SQL语句并循环,替换值并执行查询或附加所有将SQL更新语句转换为字符串(循环时)并将其传递给数据库以立即执行所有操作。对不起,我不知道是否会对另一方造成重大的性能影响,但我相信一次性执行会对性能产生一些好处。