mysql replace函数

本文详细介绍了 SQL 中 REPLACE 函数的使用方法,包括如何替换字符串中的指定子串,并通过多个实例展示了其在实际操作中的应用。同时,还对比了 REPLACE INTO 与 INSERT INTO 在数据更新方面的差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

relpace

1UPDATE tb1 SET f1=REPLACE(f1, 'abc''def');
2REPLACE(str,from_str,to_str)

 更新 tb1表里面的f1 找到f1后 把f1 里面的 abd 替换成 def

select *, REPLACE(username, "a", "b") as test FROM table where 1;

把username字段里面的a替换为b,替换成功则按替换完后输出,若不存在则以原来字符串输出

UPDATE taocan_pic set username=REPLACE(username, 'fei', 'lei');

把username 里面的fei 替换成lei 没有则不替换。

replace into

replace into table (id,name) values('1','aa'),('2','bb') ;

REPLACE INTO `table` (`unique_column`,`num`) VALUES ('$unique_value',$num);跟INSERT INTO `table` (`unique_column`,`num`) VALUES('$unique_value',$num) ON DUPLICATE UPDATE num=$num;还是有些区别的.
区别就是replace into的时候会删除老记录。如果表中有一个自增的主键。
那么就要出问题了。

首先,因为新纪录与老记录的主键值不同,所以其他表中所有与本表老数据主键id建立的关联全部会被破坏。

其次,就是,频繁的REPLACE INTO 会造成新纪录的主键的值迅速增大。
总有一天。达到最大值后就会因为数据太大溢出了。就没法再插入新纪录了。数据表满了,不是因为空间不够了,而是因为主键的值没法再增加了。

转载于:https://my.oschina.net/bo081220/blog/714529

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值