《mysql怎样用一条SQL实现有记录则更新,没有则添加新记录》要点:
本文介绍了mysql怎样用一条SQL实现有记录则更新,没有则添加新记录,希望对您有用。如果有疑问,可以联系我们。
相关主题:MYSQL命令
在程序开发中,经常会有这种使用场景,就是先判断一下数据库中有没有这个产品或内容,如果没有就插入新的记录。如果有,就直接更新那一条记录而不插入。
普通做法是连接2次数据库,这样效率就慢了。下面是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字段值。
转载请注明本页网址:
http://www.vephp.com/jiaocheng/111.html