mysql更新表时同时插入的问题

mysql更新表中的字段时,存在的字段更新,不存在的字段插入mysql表中,有三种方法实现:

1.update时select一下,有数据update,没数据insert ( ps:效率不高,没必要的操作。

2.使用replace into操作

replace into tbl_name(col_name, ...) values(...)

      操作已存在的数据时(根据主键和唯一索引判断),会先删掉原有数据,再插入一条。使用replace into操作的数据表必须具有主键或唯一索引,否则会直接插入数据。当表中即存在主键又存在唯一索引时,会将主键与唯一索引对应的数据删掉重新插入数据。如下图:

数据库表:

这里写图片描述
这里写图片描述

操作结果:
这里写图片描述
这里写图片描述

3.使用ON DUPLICATE KEY UPDATE。

INSERT INTO user_info (***,***,***) VALUES (?,?,?) ON DUPLICATE KEY UPDATE **= ?,**= ?;

      存在则使用后面的update更新,不存在则使用insert into。update与insert后面不能添加where语句,但是可以使用IF语句加上条件的判断充当where语句,如下:

INSERT INTO user_info (***,***,***) VALUES (?,?,?) ON DUPLICATE KEY UPDATE **= IF(判断条件,true时的值,false的值),**= IF(判断条件,true时的值,false的值);
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值