有没有一种方法可以使用单个 SQL 查询为每行更新具有不同值的多行?我必须用不同的数据更新多行中的一个列。对每一行使用单独的更新查询似乎过多,所以如果可能的话,我想将这个过程合并到一个 SQL 语句中,或者至少减少所需的查询数量。
我将 PHP 与 Zend 框架和 MySql 一起使用。
最佳答案
创建一个临时表并填充:
CREATE TEMPORARY TABLE temptable (id INTEGER, VALUE VARCHAR(200))
INSERT
INTO temptable
VALUES
('1', 'val1'),
('2', 'val2'),
('3', 'val3'),
('4', 'val4')
然后发出:
UPDATE
mytable m, temptable t
SET m.value = t.value
WHERE m.id = t.id
关于用于更新的 MySql UNION,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/546879/