mysql怎样用一条SQL实现有记录则更新,没有则添加新记录
《mysql怎样用一条SQL实现有记录则更新,没有则添加新记录》要点: 在程序开发中,经常会有这种使用场景,就是先判断一下数据库中有没有这个产品或内容,如果没有就插入新的记录。如果有,就直接更新那一条记录而不插入。 普通做法是连接2次数据库,这样效率就慢了。下面是MYSQL的做法,用一条命令完成。 mysql 有记录则更新,没有则添加新记录 :表中必須包含主鍵PRIMARY或唯一unique的字段 INSERT INTO table (primarykeycol,col1,col2) VALUES (1,2,3) ON DUPLICATE KEY UPDATE col1=0,col2=col2+1 当表中已经存在主键primarykeycol值为1的记录时,则将会更新而不会添加。 又如: INSERT INTO `imgtoday` ( `t_memid`,`atype`, `picNum`) VALUES ( ?, ?, 1) ON DUPLICATE KEY UPDATE `picNum`= `picNum`+1'; 其中`t_memid`是主键。如果插入时发现有该主键值的记录时,就把后面字段PICNUM加1 要注意的事,并非要主键才行,只要SQL中有独一无非的UNIQUE索引即可。比如下面一条: INSERT INTO msgread (`mem`, `readed`) VALUES (? , ? ) ON DUPLICATE KEY UPDATE `readed`=? 这条SQL中,mem字段是UNIQUE索引,主键是另一个字段,它的意思是插入某个会员到表msgread,如果已经有这个会员就直接更新readed字段值。 (编辑:莱芜站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 在MySQL中生成唯一的10个字母数字哈希值
- Mysql实例详谈mysql order by in 的字符顺序(推荐)
- Mysql学习mysql中错误:1093-You can’t specify target ta
- 使用PHP创建表并从MySQL填充
- php – 数据库设计:设计论坛表的最佳实践
- Mysql实例MySQL MyISAM 优化设置点滴
- mysql创建数据库测试; ERROR 1006(HY000):无法创建数据库’
- Mysql应用PHP连接MySql闪断自动重连的方法
- java.sql.SQLException:用户’root @ localhost’@’local
- database – 在mySQL中优化嵌入式SELECT查询