【发布时间】:2017-11-25 22:26:47
【问题描述】:
我正在尝试运行这个:
UPDATE test
SET col2=1 WHERE col1='test1',
SET col2=3 WHERE col1='test2';
我得到的错误:
[Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '
我的桌子:
CREATE TABLE `test` (
`col1` varchar(30) NOT NULL,
`col2` int(5) DEFAULT NULL,
PRIMARY KEY (`col1`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
这是关于第一行末尾的,。当我将其更改为; 时,它无法识别col2。我怎样才能在一个查询中做到这一点?
【问题讨论】:
-
Multiple Updates in MySQL 的可能重复项。你会在那里找到答案
-
是的,我知道那个解决方案,但在我的情况下,每一行都已经存在于表中(不需要插入),所以它总是会在 DUPLICATE KEY UPDATE 上运行并使一切慢很多.
-
我不明白你的意思。当您需要更新时使用
INSERT命令,仅此而已。如果你使用主键,它不会慢很多 -
好的,如果没有人提出更好的解决方案,我会这样做,谢谢
-
只是为了说清楚,如果你使用你的主键(不仅仅是 col1 = "test")它会很快。