最佳答案
我想做这样的事
INSERT INTO t (t.a, t.b, t.c)
VALUES ('key1','key2','value')
ON DUPLICATE KEY UPDATE
t.c = 'value';
INSERT INTO t (t.a, t.b, t.c)
VALUES ('key1','key3','value2')
ON DUPLICATE KEY UPDATE
t.c = 'value2';
T.A 和 T.B 是关键。这一切工作正常,但是我在第二次插入时得到一个错误。对于 phpMyAdmin,像这样的查询工作得很好,但是我猜测它是独立运行查询的,因为它把查询的结果打印成注释?
这样的东西将是好太多,但我需要有不同的价值为每个项目。我更喜欢这样,但我不知道如何更改每个值的更新值。
INSERT INTO t (t.a, t.b, t.c)
VALUES ('key1','key2','value'), ('key1','key3','value2')
ON DUPLICATE KEY UPDATE
t.c = ???
问题是在问号中,我应该在那里放什么,以便每次插入/更新都有正确的值?显然,如果我把一个值放在那里,所有的字段都会得到这个值。
如果有另一种方法来做一个“更新如果存在,否则插入”查询多个字段与两个键,我也为其他想法。我想我可以分别运行每个查询(比如 phpMyAdmin?)但是会有很多疑问,所以我想尽量避免。