MySQL實用小知識-關於ON DUPLICATE KEY UPDATE的使用
阿新 • • 發佈:2018-12-21
一般程式設計師都會遇到的問題,就是我們要統計某個id在某個時間段去統計某些資料,今天就圍繞這個問題給大家一個實用的sql。
首先我們有一張這樣的表:
id | created | cont_login |
id:主鍵
created:唯一
cont_login :今日登陸累計數
我們常規操作:
$name = $_POST('name');
$data = SELECT * FROM user_cont_login WHERE name='$name';
if($data) {
UPDATE user_cont_login SET cont_login = cont_login+1 WHERE name = '$name'
} else {
INSERT INTO user_cont_login (id,cont_login,created) VALUES ($id,1,$created)
}
來正題,非常規操作:
INSERT INTO user_cont_login (id,cont_login,created) VALUES ($id,1,$created) ON DUPLICATE KEY UPDATE cont_login=cont_login+1; 注意細節: ON DUPLICATE KEY UPDATE的使用 id:主鍵索引 created:唯一索引 想想我們的需求,是某個id在某個時間段去統計某些資料,所以這兩個欄位的索引是必然的。