十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
下面这方法可以的,不过有个缺陷,就是如果在网址前面还有不包含开始字符http而只包含结尾字符.com的字符的话(比如邮箱xxx@169i.com),是删不去这个网址的。并且如果字段内容出现多个 网址的话,需要重复执行 update t1 set con = replace(con, substring(con, locate('http', con),locate('.com', con)-locate('http',con)+4),' ') +4这里根据结尾字符长度而定
我们提供的服务有:网站设计制作、成都做网站、微信公众号开发、网站优化、网站认证、涵江ssl等。为上千余家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的涵江网站制作公司
mssql的replace支持通配符,而mysql想要实现该功能,还需费一翻手脚。
请看:
SELECT CONCAT('A href="',
SUBSTRING_INDEX(
SUBSTRING_INDEX('xyzA href="/v3/uploadfile/UploadFiles_5625/201107/2011070122330714.jpg" target=_blankmmm /AxyzxyzA href="/v3/uploadfile/UploadFiles_5625/201107/2011070122330713.jpg" target=_blank /AxyzxyzA href="/v3/uploadfile/UploadFiles_5625/201107/2011070122330715.jpg" target=_blankxxx /Axyz'
,'A href="',-3)
,'"',1)
,'" target=_blank /A');
这句代码中出现SUBSTRING_INDEX,其函数原型为SUBSTRING_INDEX(str,delim,num),其返回在str中第num个delim之前或之后的字符串,若num为正则为向后取,为负则为向后取。
如SUBSTRING_INDEX(‘abcdefg’,'d',1)返回字符串efg,SUBSTRING_INDEX(‘abcdefg’,'d',-1)返回abc。
开头所示代码则表示,在字符串中寻找第3个'A href="'之后的字符,而后取该返回字符串第一个'"'之前的字符串,则最后返回/v3/uploadfile/UploadFiles_5625/201107/2011070122330715.jpg。
本次所想替换的是文本代码中无效的链接代码,寻到不同后,再用concat连接起来,update即可。如例:
UPDATE phpcms_c_tougao
SET content=REPLACE(content,CONCAT('A href="', SUBSTRING_INDEX( SUBSTRING_INDEX(content,'A href="',-1) ,'"',1) ,'" target=_blank/A'),'')
WHERE 1;
(完毕)
“_” 匹配单个字符,”\_” 匹配”_”
“%” 匹配任意个字符,包括零个字符
sql模式下的匹配,缺省是忽略大小写的,并且sql模式下的模糊匹配不能使用“=”或”!=”,而使用 like 或 not like.
三种方法:
【一】像你这种aa前后都是特殊字符,而且最外侧是双引号的可以直接写变量名
$result = mysql_query("SELECT * FROM table1 WHERE name LIKE '%$var%'");
【二】也可以使用点连接符对字符串进行连接:
$result = mysql_query("SELECT * FROM table1 WHERE name LIKE '%" . $var . "%'");
【三】可以使用{}代码域来分隔变量名,这种用法更适用于变量后有数字、字母、下划线的情况,它可以明确地将变量与字符串区分开来:
$result = mysql_query("SELECT * FROM table1 WHERE name LIKE '%{$var}%'");