国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 數(shù)據(jù)庫(kù) > MySQL > 正文

Mysql 自定義隨機(jī)字符串的實(shí)現(xiàn)方法

2024-07-24 13:10:20
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

前幾天在開(kāi)發(fā)一個(gè)系統(tǒng),需要用到隨機(jī)字符串,但是mysql的庫(kù)函數(shù)有沒(méi)有直接提供,就簡(jiǎn)單的利用現(xiàn)有的函數(shù)東拼西湊出隨機(jī)字符串來(lái).下面簡(jiǎn)單的說(shuō)下實(shí)現(xiàn)當(dāng)時(shí).

1.簡(jiǎn)單粗暴.

select ..., substring(MD5(RAND()),floor(RAND()*26)+1,6) as rand_str .....

上訴示例產(chǎn)生的是:6位長(zhǎng)度的隨機(jī)字符串.

函數(shù)解釋:

rand() :產(chǎn)生 0-1之間的小數(shù),簡(jiǎn)稱(chēng)種子.rand()*25 產(chǎn)生的數(shù) 在 0- 25 之間,不包括25

floor(val): 生成最近接val的最大整數(shù)

md5() :對(duì)字符串進(jìn)行Md5加密(單向),生成的字符串長(zhǎng)度是32位。

substring(str,pos,len):截取字符串,第一個(gè)參數(shù):待截取的字符串,第二個(gè)參數(shù):開(kāi)始的位置(這里有些不同,下標(biāo)開(kāi)始位置為1,可以試試下),第三個(gè)參數(shù):截取的長(zhǎng)度.

mysql,隨機(jī)字符串,mysql自定義字符串

2.將方式1進(jìn)行包裝一下:自定義函數(shù)

drop function if exists rand_str;#第一句: 如果存在重名函數(shù),就將其刪除 create function rand_str(strlen smallint) returns varchar(255)#第二句: 定義一個(gè)函數(shù),名稱(chēng)'rand_str' ,參數(shù)名 strlen 參數(shù)類(lèi)型 smallint , 返回值類(lèi)型 varchar(255) ,特別 注意下 這里的 是returns 下面的是 return#BEGIN#相當(dāng)于左大括號(hào) '{'DECLARE result_str VARCHAR(255) DEFAULT '';#聲明返回值對(duì)象,類(lèi)型 ,長(zhǎng)度 ,默認(rèn)值SET result_str =SUBSTRING(MD5(RAND()),32-strlen,strlen);#設(shè)置返回值對(duì)象的值 方式1中簡(jiǎn)單粗暴的函數(shù) RETURN result_str;#返回 結(jié)果對(duì)象 這里的是 returnEND# 結(jié)束標(biāo)識(shí) 相當(dāng)于 '}'

3.自定義函數(shù) 直接上代碼

每一句的實(shí)現(xiàn)就不解釋了,可以參加方式2中的代碼解釋看一下

DROP FUNCTION IF EXISTS rand_str;create FUNCTION rand_str(strlen SMALLINT ) RETURNS VARCHAR(255)BEGINDECLARE randStr VARCHAR(255) DEFAULT 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890';DECLARE i SMALLINT DEFAULT 0;DECLARE resultStr VARCHAR(255) DEFAULT '';WHILE i<strlen DOSET resultStr=CONCAT(SUBSTR(randStr,FLOOR(RAND()*LENGTH(randStr))+1,1),resultStr);SET i=i+1;END WHILE;RETURN resultStr;END

以上所述是小編給大家介紹的Mysql 自定義隨機(jī)字符串的實(shí)現(xiàn)方法,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)VeVb武林網(wǎng)網(wǎng)站的支持!

 


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到MYSQL教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 黄梅县| 图木舒克市| 历史| 嘉定区| 靖远县| 临海市| 茌平县| 奉化市| 江源县| 宝山区| 武鸣县| 盐津县| 宜川县| 冀州市| 东安县| 渑池县| 西乡县| 新源县| 霸州市| 阿拉尔市| 郎溪县| 开阳县| 陆良县| 澜沧| 深圳市| 万宁市| 乌拉特前旗| 八宿县| 南乐县| 常宁市| 阳东县| 云浮市| 鹿邑县| 扶风县| 晋宁县| 扬州市| 贵定县| 柘荣县| 正镶白旗| 永济市| 丹凤县|