在MySQL中更新1列中的多行

Don*_*n P 6 mysql sql sql-update

在MySQL中同时更新多行的正确查询是什么?

我只更新了1列:

UPDATE example_table SET variable1 = 12 WHERE id=1;
UPDATE example_table SET variable1 = 42 WHERE id=2;
UPDATE example_table SET variable1 = 32 WHERE id=3;
UPDATE example_table SET variable1 = 51 WHERE id=4;
Run Code Online (Sandbox Code Playgroud)

这似乎可能效率低下,或者如果它是最有效的查询让我知道:)

Vik*_*ram 13

您可以使用以下案例:

UPDATE example_table
   SET variable1 = CASE id
                     WHEN 1 THEN 12
                     WHEN 2 THEN 42
                     WHEN 3 THEN 32
                     WHEN 4 THEN 51
                   END
 WHERE id BETWEEN 1 AND 4
Run Code Online (Sandbox Code Playgroud)

  • @DonnyP:是的,那是有效的SQL - 查看[CASE文档](http://dev.mysql.com/doc/refman/5.0/en/case-statement.html) (2认同)