MySql UNION for UPDATE

use*_*371 4 mysql union

有没有办法使用单个SQL查询为每行更新具有不同值的多个行?我必须使用不同的数据更新许多行中的一个列.对每一行使用单独的更新查询似乎过多,所以如果可能的话,我希望将此过程合并到单个SQL语句中,或者至少减少所需的查询数量.

我使用PHP与Zend框架和MySql.

Qua*_*noi 7

创建一个临时表并填写:

CREATE TEMPORARY TABLE temptable (id INTEGER, VALUE VARCHAR(200))

INSERT
INTO temptable
VALUES
  ('1', 'val1'),
  ('2', 'val2'),
  ('3', 'val3'),
  ('4', 'val4')
Run Code Online (Sandbox Code Playgroud)

然后发出:

UPDATE
  mytable m, temptable t
SET m.value = t.value
WHERE m.id = t.id
Run Code Online (Sandbox Code Playgroud)