如何将多个INSERT查询与不同的WHERE语法结合起来?

时间:2017-10-24 16:31:03

标签: mysql sql

如何组合两个查询:

INSERT INTO table (column1) VALUE (X) WHERE column2= 11

INSERT INTO table (column1) VALUE (Y) WHERE column2= 22

1 个答案:

答案 0 :(得分:0)

您需要执行UPDATE查询而不是INSERT,例如:

UPDATE table SET column1 = x WHERE column2= 11;

UPDATE table SET column1 = y WHERE column2= 22;

这将返回更新的行数,如果该计数为0,那么您可以执行INSERT,例如:

INSERT INTO table(column1, column2) VALUES (x, 11);
INSERT INTO table(column1, column2) VALUES (y, 22);

<强>更新

您还可以将两个更新查询合并为一个CASE,例如:

UPDATE `table` SET `column1` = CASE
    WHEN column2 = 11 THEN x
    WHEN column2 = 22 THEN y
    ELSE `column1`
    END
WHERE id  in (11,22);