mysql数据库中如何进行模糊替换字符串

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql数据库中如何进行模糊替换字符串相关的知识,希望对你有一定的参考价值。

比如我有一个表叫goods 有一个列叫goods_name
goods_name有的值是'xxx(ooo)' 我现在要做的是只要是这个字段的值带括号 就把括号里的值替换成公斤
'xxx(ooo)'就替换成'xxx(公斤)'
'aaa(bbb)'就替换成'aaa(公斤)'
'ccc'就不用进行操作 因为'ccc'里没有括号
怎么写sql?

您好,update mt2 set name = replace(name, substring(name, locate('<contact>', name),locate('</contact>', name)-locate('<contact>'+10, name)),'');
locate:
LOCATE(substr,str)
POSITION(substr IN str)
返回子串 substr 在字符串 str 中第一次出现的位置。如果子串 substr 在 str 中不存在,返回值为 0:
substring
SUBSTR(str,pos,len): 由<str>中的第<pos>位置开始,选出接下去的<len>个字元。
replace
replace(str1, str2, str3): 在字串 str1 中,当 str2 出现时,将其以 str3 替代。
参考技术A UPDATE goods  SET
goods_name = CONCAT(LEFT(goods_name,LOCATE('(', goods_name)),'公斤)')
WHERE goods_name LIKE '%(%)'


以上是关于mysql数据库中如何进行模糊替换字符串的主要内容,如果未能解决你的问题,请参考以下文章

sql可以替换模糊匹配字符串吗

mysql 怎样替换一模一样相同的字符,而包含相同字符的替换?

mysql 正则表达式替换,把指定位置随机数替换成固定数字

如何在 MySQL 中进行正则表达式替换?

mysqlnan替换为0

如何使用 mySQL replace() 替换多条记录中的字符串?