Dai Chong's blog

mysql on duplicate key update 对于不是很常用的人来说是比较陌生的。那么他到底是用来干什么的呢?下面就介绍一下:

比如在我们做一个点击量的功能,程序的逻辑是这样的:
在用户点击的时候我们首先要判断数据表中已经存在了这个人的数据,如果存在日志表对应的用户点击次数加1,如果不存在新增一条数据。

那么按照正常的编程需要有两条sql

先查询数据表中是否有,有了执行修改操作,没有执行添加操作。一条查询一条修改或添加。

那么有了这个on duplicate key update 之后就可以把这两个sql简化为一条,减少了数据的查询次数、避免了数据重复而且少打一些代码,可谓是一举三得!

sql
1
insert into t_my (id,click) VALUES (2,1) on DUPLICATE KEY UPDATE click=click+1;


 评论