有一张表 T ,几个字段 id, c1, c2 ...,其中 id 为主键。
现在有大量数据需要更新,由于以下原因:
需要将更新操作合并为一条 SQL 。
目前已知大致有这么几种方法:
INSERT INTO T (id, c1, c2)
VALUES (1, 1, 1), (2, 2, 2)
ON DUPLICATE KEY
UPDATE c1 = c1 + VALUES(c1), c2 = c2 + VALUES(c2);
UPDATE T
SET c1 = c1 + CASE id
WHEN 1 THEN 1
WHEN 2 THEN 2
END,
c2 = c2 + CASE id
WHEN 1 THEN 1
WHEN 2 THEN 2
END
WHERE id IN (1, 2);
UPDATE T t
JOIN (
SELECT 1 as id, 1 as x,
UNION ALL
SELECT 2, 2
) v ON t.id = v.id
SET c1 = c1 + x, c2 = c2 + x;
目前的问题是:
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.