MySQL的Replace方法

一、replace函数

语法:replace(object,search,replace)
语义:把object对象中出现的的search全部替换成replace。
示例:

update user set sex = replace (sex, "男", "male");

将user表中,sex字段中所有“男”转换成“male"

二、replace into

插入的字段含有唯一索引的时候,就会先判断表中是否有重复的记录

  • 如果有重复的记录,系统自动先调用了DELETE删除这条记录,然后重新插入这条记录,如果有的字段没有传入值,就会设置为默认值。相当于更新了这条记录。
  • 如果没有重复的记录,就新插入一条数据。

如果插入的字段没有唯一索引的时候,就相当于insert,直接插入一条数据。

例子:
user表结构:

idnamesexcreate_timeupdate_time
1aa2020-09-17 14:35:312020-09-17 14:35:31
2bb2020-09-17 14:35:312020-09-17 14:35:31
3cc2020-09-17 14:35:312020-09-17 14:35:31

其中id是自增主键,name是唯一索引,sex默认值为男,create_time是创建的时间,update_time是更新时间
create_time和update_time都是自动获取的

replace into user (id, name,sex) values(1,"aa","男")

只是修改了该行的时间。先删除该条记录,然后重新插入,时间更新了。

idnamesexcreate_timeupdate_time
1aa2020-09-17 17:38:592020-09-17 17:38:59
2bb2020-09-17 14:35:312020-09-17 14:35:31
3cc2020-09-17 14:35:312020-09-17 14:35:31
replace into user (id, name,sex) values(1,"aa","女")

修改了该行的时间,和sex值。先删除该条记录,然后插入

idnamesexcreate_timeupdate_time
1aa2020-09-17 17:41:452020-09-17 17:41:45
2bb2020-09-17 14:35:312020-09-17 14:35:31
3cc2020-09-17 14:35:312020-09-17 14:35:31
replace into user (id, name) values(1,"aa")

修改了该行的时间,sex设置为默认值。先删除了该条记录,然后重新插入,sex设置为默认值。

idnamesexcreate_timeupdate_time
1aa2020-09-17 17:42:522020-09-17 17:42:52
2bb2020-09-17 14:35:312020-09-17 14:35:31
3cc2020-09-17 14:35:312020-09-17 14:35:31
replace into user (name) values("aa")

把id为1的那条删除,然后重新插入一条数据,sex为默认值。因为id是自增的,就由1变为4

idnamesexcreate_timeupdate_time
2bb2020-09-17 14:35:312020-09-17 14:35:31
3cc2020-09-17 14:35:312020-09-17 14:35:31
4aa2020-09-17 17:46:342020-09-17 17:46:34
replace into user (sex) values("女")

新增了一条数据,再cha

idnamesexcreate_timeupdate_time
2bb2020-09-17 14:35:312020-09-17 14:35:31
3cc2020-09-17 14:35:312020-09-17 14:35:31
4aa2020-09-17 17:46:342020-09-17 17:46:34
52020-09-17 18:06:512020-09-17 18:06:51
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TriumPhSK

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值