MySQL生成随机字符串的三种方法

MySQL生成随机字符串的三种方法,第1张

比如说,要生成一个10位的随机字符串,可以使用如下语句:

运行结果:

该语句只能生成最长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

(完毕)


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/7206878.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-02
下一篇2023-04-02

发表评论

登录后才能评论

评论列表(0条)

    保存