替换某字段中的特定字符串——MySQL REPLACE 与INSERT 函数详解

替换某字段中的特定字符串——MySQL REPLACE 与INSERT 函数详解

MySQL提供了一个非常实用的字符串函数——REPLACE() 函数,它允许用新的字符串替换字段中的特定字符串,而不再需要自己写函数去替换,用起来非常的方便。

REPLACE() 函数语法

替换某字段中的特定字符串——MySQL REPLACE 与INSERT 函数详解

需要注意的是,MySQL中也有一个叫作 REPLACE的语句,它用于插入或更新数据,使用 REPLACE语句 写入一条记录时, 如果发现表中已经有此行数据(根据主键或者唯一索引判断)则先删除此行数据,然后插入新的数据,否则,直接插入新数据。

因此不要将REPLACE语句 与这里的 REPLACE()函数混淆,在文中末尾附REPLACE语句介绍文章链接。


REPLACE()函数

REPLACE() 函数中有三个参数,它将 string 中的 old_string 替换为new_string 字符串

REPLACE() 函数能够帮助我们非常方便的替换字段中的文本,比如更新失效的URL,纠正拼写错误等。

替换某字段中的特定字符串——MySQL REPLACE 与INSERT 函数详解

如上,url_information 表中Tony 的url链接已经失效,我们需要将Tony的url中的 mp 替换为www,在UPDATE语句中使用 REPLACE()函数 的语法如下:

替换某字段中的特定字符串——MySQL REPLACE 与INSERT 函数详解

执行结果如下:

替换某字段中的特定字符串——MySQL REPLACE 与INSERT 函数详解

注意:当搜索要替换的文本时,MySQL使用区分大小写匹配来执行要替换的字符串的搜索。


这里我们再额外了解下另一个被用作替换字符串的函数——MySQL INSERT()函数

INSERT() 函数语法

替换某字段中的特定字符串——MySQL REPLACE 与INSERT 函数详解

INSERT() 函数返回字符串 s1,子字符串起始于 x 位置,被字符串s2取代len个字符。

替换某字段中的特定字符串——MySQL REPLACE 与INSERT 函数详解

接下来,我们使用如上 url_information 表来体验一下 INSERT()函数,如下:

替换某字段中的特定字符串——MySQL REPLACE 与INSERT 函数详解

执行上述三条SQL,结果如下:

替换某字段中的特定字符串——MySQL REPLACE 与INSERT 函数详解

我们结合如上执行结果,来了解一下INSERT() 函数的用法:

  • 第一个函数 INSERT(url,5,7,'baidu')将从url字段第 5 个字符开始长度为 7 的字符串替换为 'baidu'。
  • 第二个函数 INSERT(url,-1,4,'baidu') 中的起始位置 -1 超出了字符串长度,直接返回原字符串
  • 第三个函数 INSERT(url,5,20,'baidi') 替换长度超出了原字符串长度,则从第 5 个字符开始,截取后面所有的字符,并替换为指定字符 'baidu'。

REPLACE语法介绍:


分享到:


相關文章: