php mysql 随机字符串_MySQL_Mysql 自定义随机字符串的实现方法,前几天在开发一个系统,需要 - phpStudy...
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
SET resultStr=CONCAT(SUBSTR(randStr,FLOOR(RAND()*LENGTH(randStr))+1,1),resultStr);
SET i=i+1;
END WHILE;
RETURN resultStr;
END
以上所述是小編給大家介紹的Mysql 自定義隨機字符串的實現方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對phpstudy網站的支持!相關閱讀:
JS使用oumousemove和oumouseout動態改變圖片顯示的方法
用JavaScript動態建立或增加CSS樣式表的實現方法
JavaScript設置body高度為瀏覽器高度的方法
html5 worker 實例(二) 圖片變換效果
IOS中手風琴表不能移動的解決方法
安裝Fedora作為工作環境后的一些配置建議
window.print打印指定div指定網頁指定區域的方法
jQuery實現自動輸入email、時間和域名的方法
C#解析json字符串總是多出雙引號的原因分析及解決辦法
CSS 文本字體顏色設置方法(CSS color)
csshover.htc在IE7下使用:active偽類無效解決方法
在Ubuntu上安裝消息傳遞接口Open MPI庫的教程
深度探究C++中的函數重載的用法
Win10系統如何電腦關閉系統還原以減少磁盤占用空間
總結
以上是生活随笔為你收集整理的php mysql 随机字符串_MySQL_Mysql 自定义随机字符串的实现方法,前几天在开发一个系统,需要 - phpStudy...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 假网站备案号(假网站备案)
- 下一篇: 安卓手机连接mac电脑(安卓手机连接ma