本节使用的表依然是上一次使用的表,表名: customer ,表有列: cus_id,cus_no,cus_name,cus_age,cus_adds。
通配符"%"解析:
1) "***%" 表示匹配任意字符开头的数据,如cus_name like '张%' 代表匹配姓名以“张”开头的所有客户信息; eg:select * from customer where cus_name like '张%'
2) "%***" 表示匹配任意字符结尾的数据,如cus_age like "%8" 代表匹配年龄以“8”结尾的所有客户信息; eg:select * from customer where cus_age like '%8'
3) "%***%"表示匹配包含任意字符的数据,如cus_id like "%100%" 代表匹配id包含“100”的所有客户信息; eg:select * from customer where cus_id like '%100%'体验
4) "*_" 表示匹配任意一个字符开头的数据,只能以一个字符开头,如cus_name like '_**' ,代表匹配姓名后两个字为“二小”的所有客户信息; eg:select * from customer where cus_name like '_二小'
5) "_*" 表示匹配任意一个字符结尾的数据,只能以一个字符结尾,如cus_age like "%8" 代表匹配年龄以“8”结尾的所有客户信息; eg:select * from customer where cus_age like '_8'
6) "_*_*"表示匹配中间包含任意一个字符的数据,如cus_id like " 1_0_ " 代表匹配id包含“ 1_0_ ”的所有客户信息; eg:select * from customer where cus_id like '1_0_'
7)eg:select * from customer where cus_age like '^[2]' --表示查询年龄不以2开头的客户信息
8)eg:select * from customer where cus_age like '[2 | 3]' --表示查询年龄以2或者3开头的客户信息
“_” 匹配单个字符,”\_” 匹配”_”“%” 匹配任意个字符,包括零个字符
sql模式下的匹配,缺省是忽略大小写的,并且sql模式下的模糊匹配不能使用“=”或”!=”,而使用 like 或 not like.
mssql的replace支持通配符,而mysql想要实现该功能,还需费一翻手脚。请看:
SELECT CONCAT('<A href="',
SUBSTRING_INDEX(
SUBSTRING_INDEX('xyz<A href="/v3/uploadfile/UploadFiles_5625/201107/2011070122330714.jpg" target=_blank>mmm </A>xyzxyz<A href="/v3/uploadfile/UploadFiles_5625/201107/2011070122330713.jpg" target=_blank></A>xyzxyz<A href="/v3/uploadfile/UploadFiles_5625/201107/2011070122330715.jpg" target=_blank>xxx </A>xyz'
,'<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
(完毕)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)