2013年10月21日 星期一

MySQL 的一些技巧

如果在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, ' ', '');