
运行结果:
该语句只能生成最长32位(但只有0~9,a~f共16种字符)的字符串,如果需要更长的字符,可以使用 concat 函数连接多个字符串,如下所示:
这个语句可以生成长度为42个字符的字符串。
运行结果:
因为 uuid() 函数返回的字符串中会包含特殊字符 "-" , 所以我们需要通过 replace 函数将这个特殊字符全部替换掉。这种方式会得到一个32位的字符串,如果有长度要求,可以用substring或concat函数裁剪或拼接。
运行结果:
复制代码代码如下:
Update
dede_addonsoft
SET
dxylink=REPLACE(dxylink,
'.zip',
'.rar')
where
aid
>
45553
复制代码
代码如下:
update
`table_name`
set
field
=
replace(field,'.rar','.7z')
table_name:要查询的表名,
field:表里的字段名,
replace(field,'.rar','.7z')
:正则匹配,把field字段里的
.rar
替换为
.7z
MySQL正则表达式替换,字符替换方法
两句SQL,都是字符替换,比较好用。
update
comment
set
url=IF(url
REGEXP
'test.yahoo.com.cn',REPLACE(url,'www1.sohu.com','www.sina.com'),REPLACE(url,'www2.yahoo.com','www.sina.com'))
where
1=1
update
comment
set
author_url=REPLACE(author_url,'sohu','sina')
where
author_url
REGEXP
'www.sohu.com'
MySQL
replace函数替换字符串
MySQL
replace函数我们经常用到,下面就为您详细介绍MySQL
replace函数的用法,希望对您学习MySQL
replace函数方面能有所启迪。
最近在研究CMS,在数据转换的时候需要用到mysql的MySQL
replace函数,这里简单介绍一下。
比如你要将表
tb1里面的
f1字段的abc替换为def
UPDATE
tb1
SET
f1=REPLACE(f1,
'abc',
'def')
REPLACE(str,from_str,to_str)
在字符串
str
中所有出现的字符串
from_str
均被
to_str替换,然后返回这个字符串:
mysql>
SELECT
REPLACE('www.mysql.com',
'w',
'Ww')
->
'WwWwww.mysql.com'
这个函数是多字节安全的。
示例:
UPDATE
`dede_addonarticle`
SET
body
=
REPLACE
(
body,
'</td>',
''
)
UPDATE
`dede_addonarticle`
SET
body
=
REPLACE
(
body,
'</tr>',
''
)
UPDATE
`dede_addonarticle`
SET
body
=
REPLACE
(
body,
'<tr>',
''
)
UPDATE
`dede_archives`
SET
title=
REPLACE
(
title,
'大洋新闻
-
',
''
)
UPDATE
`dede_addonarticle`
SET
body
=
REPLACE
(
body,
'../../../../../../',
'http://special.dayoo.com/meal/'
)
mysql
replace
用法1.replace
intoreplace
into
table
(id,name)
values('1','aa'),('2','bb')
此语句的作用是向表table中插入两条记录。
2.replace(object,
search,replace)
把object中出现search的全部替换为replaceselect
replace('www.163.com','w','Ww')--->WwW
www.163.com
例:把表table中的name字段中的
aa替换为bbupdate
table
set
name=replace(name,'aa','bb')
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条)