我还没有找到这样做的语法,我觉得令人沮丧的是,我没有看到任何明确表示无法完成的事情,所以我继续搜索。mysql在DUPLICATE KEY UPDATE上。是否可以将INSERT语句中的值作为实体而不是一次一个字段引用?
与表“table_one”,用一个独特的领域“table_one.a”这是主键,是有可能做这样的事情:
INSERT INTO `table_one` (a,b,c,d,e,f,g,h) VALUES (1,2,3,4,5,6,7,8)
ON DUPLICATE KEY UPDATE VALUES();
我知道以下方法:
INSERT INTO `table_one` (a,b,c,d,e,f,g,h) VALUES (1,2,3,4,5,6,7,8)
ON DUPLICATE KEY UPDATE `b` = '2', `c` = '3', `d` = '4', `e` = '5', `f` = '6', `g` = '7', `h` = '8';
而且
INSERT INTO `table_one` (a,b,c,d,e,f,g,h) VALUES (1,2,3,4,5,6,7,8)
ON DUPLICATE KEY UPDATE `b` = 'VALUES(b)', `c` = 'VALUES(c)', `d` = 'VALUES(d)', `e` = 'VALUES(e)', `f` = 'VALUES(f)', `g` = 'VALUES(g)', `h` = 'VALUES(h)';
我希望(如果这是不可能的),有人能婆把我解释为解释原因的参考。
你可以在REPLACE INTO中使用VALUES是让我烦恼的原因,你不能使用ON DUPLICATE KEY UPDATE。我会接受“是什么”,并继续在我的肩膀上少一点重量。好的工作提到使用REPLACE INTO的缺陷。 – codewaggle 2012-03-04 03:03:30