我需要更新超过3000行,但如果我运行3000多个更新查询,它会变得太慢。
(这是我要更新的表)
items (
id INT(11) NOT NULL,
name VARCHAR(255) NOT NULL,
members_only TINYINT(1) NOT NULL,
price INT(11) NOT NULL,
PRIMARY KEY (id)
);
所以我在想,是否有一种方法可以像这样一次更新多行(因为在某种程度上,如果我将所有行合并起来,它应该运行得更快)。
UPDATE items SET name='name1', members_only=1, price=20 WHERE id=1 AND
SET name='name2', members_only=0, price=70 WHERE id=2 AND
SET name='name3', members_only=0, price=40 WHERE id=3...;
3条答案
按热度按时间avwztpqn1#
我建议使用
join
:或者,为每个应用程序运行单独的更新
id
在同一事务中,因此它们都在同一时间生效。yeotifhr2#
也许它可以运行得更快,通过使用事务。这样地:
6l7fqoea3#
可以使用case语句更新多行