600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 【数据库】Mysql的REPLACE()函数替换字符串

【数据库】Mysql的REPLACE()函数替换字符串

时间:2024-03-07 00:39:52

相关推荐

【数据库】Mysql的REPLACE()函数替换字符串

mysql中replace函数直接替换mysql数据库中某字段中的特定字符串,用起来非常的方便。

REPLACE(str,from_str,to_str) 第一个字符串str中,将from_str替换为to_str

回到上一篇文章的问题:假设有两个借款,其中一个借款1的到期还款日为2日,借款2的到期还款日为10日。

这个字段loan_pmt_due_date日期有多个。这篇文章介绍另外一个函数REPLACE处理此问题。

先来看一个简单的例子:

select REPLACE('hello word','word','world'); # 结果:hello world

select REPLACE(loan_pmt_due_date,SUBSTR(loan_pmt_due_date,9,2),'02') from ms_repayment_plan where loan_id = 1 and SUBSTR(loan_pmt_due_date,9,2)!='02';select REPLACE(loan_pmt_due_date,SUBSTR(loan_pmt_due_date,9,2),'10') from ms_repayment_plan where loan_id = 2 and SUBSTR(loan_pmt_due_date,9,2)!='10';

通过上面的语句,我们发现是无法解决上面的问题的,因为最后两个数字在字段loan_pmt_due_date中不是唯一的

注意:REPLACE(str,from_str,to_str) 中from_str一定要确保在str中是唯一的,要不然会替换多次

replace into函数

说到接触REPLACE,我们会想到replace into函数,有这样一个业务场景:向数据库中插入数据,前提是重复的不能再次插入。以前用where解决的,今天才知道还有一个更简洁的方法replace。

replace具备替换拥有唯一索引或者主键索引重复数据的能力,也就是如果使用replace into插入的数据的唯一索引或者主键索引与之前的数据有重复的情况,将会删除原先的数据,然后再进行添加。

语法:replace into table( col1, col2, col3 ) values ( val1, val2, val3 )

语义:向table表中col1, col2, col3列replace数据val1,val2,val3

原先普通的insert语句会报错:

replace into china_stock values('2','000839','中信国安');

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。