如何批量更新mysql数据?如何定义这样的事情:
UPDATE `table` WHERE `column1` = somevalues SET `column2` = othervalues
具有一些值,例如:
VALUES ('160009'), ('160010'), ('160011');
和其他值:
VALUES ('val1'), ('val2'), ('val3');
也许用mysql是不可能的?一个PHP脚本?
在这种情况下,最简单的解决方案是使用ON DUPLICATE KEY UPDATE构造。它的工作速度非常快,并且可以轻松完成工作。
ON DUPLICATE KEY UPDATE
INSERT into `table` (id, fruit) VALUES (1, 'apple'), (2, 'orange'), (3, 'peach') ON DUPLICATE KEY UPDATE fruit = VALUES(fruit);
或使用CASE建筑
CASE
UPDATE table SET column2 = (CASE column1 WHEN 1 THEN 'val1' WHEN 2 THEN 'val2' WHEN 3 THEN 'val3' END) WHERE column1 IN(1, 2 ,3);