我還沒有找到這樣做的語法,我覺得令人沮喪的是,我沒有看到任何明確表示無法完成的事情,所以我繼續搜索。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