如果在INSERT語句末尾指定了ON DUPLICATE KEY UPDATE,並且插入行後會導致在一個UNIQUE索引或PRIMARY KEY中出現重複值,則執行舊行UPDATE;如果不會導致唯一值列重複的問題,則插入新行。例如,如果列a被定義為UNIQUE,並且包含值1,則以下兩個語句具有相同的效果:
1 2 3 4
| INSERT INTO TABLE (a,b,c) VALUES (1,2,3) ON DUPLICATE KEY UPDATE c=c+1;
UPDATE TABLE SET c=c+1 WHERE a=1; |
多筆資料插入方式
1 2 3 4 5 6
| INSERT INTO TABLE (a,b,c) VALUES (1,2,3), (2,5,7), (3,3,6), (4,8,2) ON DUPLICATE KEY UPDATE b=VALUES(b); |
===========================================
去除空值
REPLACE(str,from_str,to_str)
update photos set filename = replace(filename, ' ', '');