首页 > SQL语句如何实现没有这条数据就添加,有这条数据就修改

SQL语句如何实现没有这条数据就添加,有这条数据就修改

如一张表有两个字段id和n,如果存在某个id,就将这个id对应的n值加1;不存在就将向表中插入这个id并把n的值设置成0


ON DUPLICATE KEY UPDATE


提供一个我之前遇到的一个案例,给你参考:
CASE:
统计呼叫中心客服每一天的通话数量及时长
DESCRIPTION:
每天每位客服,只产生一条记录来统计通话时长和次数,这样就需要,相应记录存在就更新,不存在就插入
SOLUTION:
INSERT INTO kjrs_crm2.crm_wavtime(time_info,number_info,ext,update_time)VALUES(‘26’,’2’,’812’,’1433433600’),(‘1395’,’4’,’820’,’1433433600’),(‘190’,’2’,’975’,’1433433600’) ON DUPLICATE KEY UPDATE time_info=VALUES(time_info),number_info=VALUES(number_info),ext=VALUES(ext),update_time=VALUES(update_time)
NOTICE:
还有其它解决方法,但是都没有INSERT INTO … ON DUPLICATE KEY UPDATE …更好;
REPLACE INTO : 如果存在已有记录,将先删除,再插入新数据,效率低,同时会使主键id不断增大;
先SELECT,再确定UPDATE还是INSERT INTO: 效率低,代码量大
http://nixus.leanote.com/post/Untitled-551a488338f41114e8000e97-12

【热门文章】
【热门文章】