mysql - SQL语句如何实现没有这条数据就添加,有这条数据就修改
怪我咯
怪我咯 2017-04-17 13:00:06
[MySQL讨论组]

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

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回复(2)
PHPz

提供一个我之前遇到的一个案例,给你参考:
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

伊谢尔伦

ON DUPLICATE KEY UPDATE

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号