1. 程式人生 > >MySQL實用小知識-關於ON DUPLICATE KEY UPDATE的使用

MySQL實用小知識-關於ON DUPLICATE KEY UPDATE的使用

一般程式設計師都會遇到的問題,就是我們要統計某個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在某個時間段去統計某些資料,所以這兩個欄位的索引是必然的。