mysql中字符查询与替换

select * from tablename where column like "%str%"----------------------查询表中的某列里包含某str的行

update ear_bbs_threads_content set content = replace(content, substring(content, locate('[url=', content),locate('[url=',content)-locate('[/url]', content)),'')----------替换content内容里面以[url=开始并以[/url]结束之间的所有字符

update tablename set column =replace(column,'str','')-------------------替换表中某列里内容为str的字符串

update table set content=left(content,locate('str',content)+1)-----------删除表中某列里str后的内容

select trim(leading 'x' from 'xxxadminxxx')-----------------------------------删除字符串xxxadminxxx前xxx

select trim(trailing 'x' from 'xxxadminxxx')---------------------------------- -删除字符串xxxadminxxx后xxx 

select trim(both 'x' from 'xxxadminxxx')---------------------------------------删除字符串xxxadminxxx前后的xxx

delete from `表` where `字段` not like '%指定字符1%'--------------------删除不包含某字符串的记录

delete from `表` where `字段` like '%指定字符1%' or like '%指定字符2%' or like '%指定字符3%'------------删除包含某字符串的记录

以下为mysql删除两字符间所有字符的测试过程,参考过程来源博客见最后备注:

update ear_bbs_threads_content set content = dbo.RegexReplace('<*>','',content,1,1);
update ear_bbs_threads_content set content =replace(content,'[url*url]','') where tid >=100 and tid <=1000
update ear_bbs_threads_content set content = replace(content, substring(content, locate('[url=', content),locate('[/url]', content)-locate('[url=',content)),'')
update ear_bbs_threads_content set content = replace(content, substring(content, locate('[url=', content),locate('[/url]', content))),'')

update ear_bbs_threads_content set content = replace(content, substring(content, locate('[url=', content),locate('[url=',content)-locate('[/url]', content)),'')

其过程详细说明为:

使用 SubString字符串截取函数
SubString(string, int, int)
返回第一个参数中从第二个参数指定的位置开始、第三个参数指定的长度的子字符串。
然后用update set即可达到删除字符串的前两个字符的效果
sql
update table set name= substring(name,3,len(name)-2);
解释:更新table表中name字段
substring(name,3,len(name)-2);表示返回从name字段的第三个字符之后的所有字符
效果就是删除前2个字符了
len(name)表示返回name字段的长度


搞定了,很开心

原文地址:https://www.cnblogs.com/jthb/p/14731461.html