猿问

MySQL中的多个更新

MySQL中的多个更新

我知道您可以一次插入多个行,是否有一种方法可以同时更新MySQL中的多个行(如在一个查询中)?


编辑:例如,我有以下内容


Name   id  Col1  Col2

Row1   1    6     1

Row2   2    2     3

Row3   3    9     5

Row4   4    16    8

我想将以下所有更新合并到一个查询中


UPDATE table SET Col1 = 1 WHERE id = 1;

UPDATE table SET Col1 = 2 WHERE id = 2;

UPDATE table SET Col2 = 3 WHERE id = 3;

UPDATE table SET Col1 = 10 WHERE id = 4;

UPDATE table SET Col2 = 12 WHERE id = 4;


人到中年有点甜
浏览 452回答 3
3回答

心有法竹

由于您有动态值,因此需要使用if或case对要更新的列进行更新。有点丑,但应该管用。使用您的例子,您可以这样做:UPDATE table SET Col1 = CASE id                            WHEN 1 THEN 1                            WHEN 2 THEN 2                            WHEN 4 THEN 10                            ELSE Col1                          END,                   Col2 = CASE id                            WHEN 3 THEN 3                            WHEN 4 THEN 12                            ELSE Col2                          END              WHERE id IN (1, 2, 3, 4);
随时随地看视频慕课网APP
我要回答