MySql中replace替换字符串如何不区分大小写

大超

今天有个群友求助,他批量采集了一批内容,想把里面的网址替换掉,但是人家针对网址进行了处理,比如“www”被随机处理成“Www”、“wWw”或者“WWw”,他直接在Mysql里面用replace替换貌似不太管用。

他在群里吆喝了半天没人理他,估计都不屑于与“采集之流”为伍,我实在看不下去了,就本着人道主义精神帮他一把吧。

MySQL如何不区分大小写替换

他的Mysql语句是这样的:

UPDATE wp_posts SET post_content = replace(post_content, 'Www.Niuchao.Com', '')

一看这wp_posts就知道用的是wordpress程序,曾经是我的痛,还好我已经放弃了。他这语句看着是没什么问题,执行起来也不会报错,只是不会得到他想要的结果而已,因为MySQL是区分大小写的。

这个时候,我想到了lower函数,就改成了这样子:

UPDATE wp_posts SET post_content = replace(lower(post_content), 'www.niuchao.com', '')

意思就是先把内容里面的字母都转换成小写,然后用小写的字符去替换掉。当然,这样做也是有弊端的,比如内容里面如果有英文内容,如果首字母不大写就显得不好看,还有一些需要大写的简写也会变成小写,不好看。

那么如何只影响需要替换的地方呢?我想到的貌似只有用PHP替换了

PHP如何不区分大小写替换字符串

上面说到用MySQL里面的lower替换时出现的弊端,那就可以考虑用PHP写一个循环,然后用PHP里面的str_ireplace函数进行替换,这样就会得到完美的效果。

有问题可在下方评论留言,或关注“大超小志”微信公众号留言。

标签: MySQL PHP

留言评论

如需留言或评论,请在微信中打开此页面。

NC: 很有用
2021-09-06 10:46:30
作者 回复 @NC:有用就好啊
2021-09-06 10:46:45