一、replace函数
语法:replace(object,search,replace)
语义:把object对象中出现的的search全部替换成replace。
示例:
update user set sex = replace (sex, "男", "male");
将user表中,sex字段中所有“男”转换成“male"
二、replace into
插入的字段含有唯一索引的时候,就会先判断表中是否有重复的记录
- 如果有重复的记录,系统自动先调用了DELETE删除这条记录,然后重新插入这条记录,如果有的字段没有传入值,就会设置为默认值。相当于更新了这条记录。
- 如果没有重复的记录,就新插入一条数据。
如果插入的字段没有唯一索引的时候,就相当于insert,直接插入一条数据。
例子:
user表结构:
id | name | sex | create_time | update_time |
---|---|---|---|---|
1 | aa | 男 | 2020-09-17 14:35:31 | 2020-09-17 14:35:31 |
2 | bb | 女 | 2020-09-17 14:35:31 | 2020-09-17 14:35:31 |
3 | cc | 男 | 2020-09-17 14:35:31 | 2020-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","男")
只是修改了该行的时间。先删除该条记录,然后重新插入,时间更新了。
id | name | sex | create_time | update_time |
---|---|---|---|---|
1 | aa | 男 | 2020-09-17 17:38:59 | 2020-09-17 17:38:59 |
2 | bb | 女 | 2020-09-17 14:35:31 | 2020-09-17 14:35:31 |
3 | cc | 男 | 2020-09-17 14:35:31 | 2020-09-17 14:35:31 |
replace into user (id, name,sex) values(1,"aa","女")
修改了该行的时间,和sex值。先删除该条记录,然后插入
id | name | sex | create_time | update_time |
---|---|---|---|---|
1 | aa | 女 | 2020-09-17 17:41:45 | 2020-09-17 17:41:45 |
2 | bb | 女 | 2020-09-17 14:35:31 | 2020-09-17 14:35:31 |
3 | cc | 男 | 2020-09-17 14:35:31 | 2020-09-17 14:35:31 |
replace into user (id, name) values(1,"aa")
修改了该行的时间,sex设置为默认值。先删除了该条记录,然后重新插入,sex设置为默认值。
id | name | sex | create_time | update_time |
---|---|---|---|---|
1 | aa | 男 | 2020-09-17 17:42:52 | 2020-09-17 17:42:52 |
2 | bb | 女 | 2020-09-17 14:35:31 | 2020-09-17 14:35:31 |
3 | cc | 男 | 2020-09-17 14:35:31 | 2020-09-17 14:35:31 |
replace into user (name) values("aa")
把id为1的那条删除,然后重新插入一条数据,sex为默认值。因为id是自增的,就由1变为4
id | name | sex | create_time | update_time |
---|---|---|---|---|
2 | bb | 女 | 2020-09-17 14:35:31 | 2020-09-17 14:35:31 |
3 | cc | 男 | 2020-09-17 14:35:31 | 2020-09-17 14:35:31 |
4 | aa | 男 | 2020-09-17 17:46:34 | 2020-09-17 17:46:34 |
replace into user (sex) values("女")
新增了一条数据,再cha
id | name | sex | create_time | update_time |
---|---|---|---|---|
2 | bb | 女 | 2020-09-17 14:35:31 | 2020-09-17 14:35:31 |
3 | cc | 男 | 2020-09-17 14:35:31 | 2020-09-17 14:35:31 |
4 | aa | 男 | 2020-09-17 17:46:34 | 2020-09-17 17:46:34 |
5 | 女 | 2020-09-17 18:06:51 | 2020-09-17 18:06:51 |