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字段的长度
搞定了,很开心