Mysql 自界說隨機字符串的完成辦法。本站提示廣大學習愛好者:(Mysql 自界說隨機字符串的完成辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是Mysql 自界說隨機字符串的完成辦法正文
頭幾天在開辟一個體系,須要用到隨機字符串,然則mysql的庫函數有無直接供給,就簡略的應用現有的函數東拼西湊出隨機字符串來.上面簡略的說下完成其時.
1.簡略粗魯.
select ..., substring(MD5(RAND()),floor(RAND()*26)+1,6) as rand_str .....
上訴示例發生的是:6位長度的隨機字符串.
函數說明:
rand() :發生 0-1之間的小數,簡稱種子.rand()*25 發生的數 在 0- 25 之間,不包含25
floor(val): 生成比來接val的最年夜整數
md5() :對字符串停止Md5加密(單向),生成的字符串長度是32位。
substring(str,pos,len):截取字符串,第一個參數:待截取的字符串,第二個參數:開端的地位(這裡有些分歧,下標開端地位為1,可以嘗嘗下),第三個參數:截取的長度.
2.將方法1停止包裝一下:自界說函數
drop function if exists rand_str; #第一句: 假如存在重名函數,就將其刪除 create function rand_str(strlen smallint) returns varchar(255) #第二句: 界說一個函數,稱號'rand_str' ,參數名 strlen 參數類型 smallint , 前往值類型 varchar(255) ,特殊 留意下 這裡的 是returns 上面的是 return #BEGIN #相當於左年夜括號 '{' DECLARE result_str VARCHAR(255) DEFAULT ''; #聲明前往值對象,類型 ,長度 ,默許值 SET result_str =SUBSTRING(MD5(RAND()),32-strlen,strlen); #設置前往值對象的值 方法1中簡略粗魯的函數 RETURN result_str; #前往 成果對象 這裡的是 return END # 停止標識 相當於 '}'
3.自界說函數 直接上代碼
每句的完成就不說明了,可以加入方法2中的代碼說明看一下
DROP FUNCTION IF EXISTS rand_str; create FUNCTION rand_str(strlen SMALLINT ) RETURNS VARCHAR(255) BEGIN DECLARE randStr VARCHAR(255) DEFAULT 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'; DECLARE i SMALLINT DEFAULT 0; DECLARE resultStr VARCHAR(255) DEFAULT ''; WHILE i<strlen DO SET resultStr=CONCAT(SUBSTR(randStr,FLOOR(RAND()*LENGTH(randStr))+1,1),resultStr); SET i=i+1; END WHILE; RETURN resultStr; END
以上所述是小編給年夜家引見的Mysql 自界說隨機字符串的完成辦法,願望對年夜家有所贊助,假如年夜家有任何疑問請給我留言,小編會實時答復年夜家的。在此也異常感激年夜家對網站的支撐!