欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2016年08月18日 16:46:19   作者:小net  
前段時間接了一個項目,需要用到隨機字符串,但是mysql的庫函數(shù)沒有直接提供,需要我們自己實現(xiàn)此功能,下面小編給大家介紹下Mysql 自定義隨機字符串的實現(xiàn)方法,需要的朋友參考下吧

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

1.簡單粗暴.

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

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

函數(shù)解釋:

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

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

md5() :對字符串進行Md5加密(單向),生成的字符串長度是32位。

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

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

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

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

每一句的實現(xiàn)就不解釋了,可以參加方式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 自定義隨機字符串的實現(xiàn)方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • 如何通過SQL找出2個表里值不同的列的方法

    如何通過SQL找出2個表里值不同的列的方法

    本篇文章對如何通過SQL找出2個表里值不同的列的方法進行了詳細的分析介紹,需要的朋友參考下
    2013-05-05
  • Navicat查詢結(jié)果不能修改的原因及解決方法

    Navicat查詢結(jié)果不能修改的原因及解決方法

    下面小編就為大家?guī)硪黄狽avicat查詢結(jié)果不能修改的原因及解決方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-12-12
  • MySql判斷漢字、日期、數(shù)字的具體函數(shù)

    MySql判斷漢字、日期、數(shù)字的具體函數(shù)

    這篇文章主要大家詳細介紹了MySql判斷漢字、日期、數(shù)字的具體函數(shù),感興趣的小伙伴們可以參考一下
    2016-05-05
  • mysql(5.6及以下)解析json的方法實例詳解

    mysql(5.6及以下)解析json的方法實例詳解

    這篇文章主要介紹了mysql(5.6及以下)解析json的方法,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值 ,需要的朋友可以參考下
    2019-07-07
  • MySQL 索引和數(shù)據(jù)表該如何維護

    MySQL 索引和數(shù)據(jù)表該如何維護

    使用合適的數(shù)據(jù)類型完成數(shù)據(jù)表創(chuàng)建和建立索引后,工作并沒有完結(jié)——你需要去維護數(shù)據(jù)表和索引以保證它們運行良好。數(shù)據(jù)表維護的主要目的是查找和修復(fù)沖突,維護精確的索引統(tǒng)計和減少碎片。
    2021-05-05
  • MySQL 的覆蓋索引與回表的使用方法

    MySQL 的覆蓋索引與回表的使用方法

    這篇文章主要介紹了MySQL 的覆蓋索引與回表的使用方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • MySQL對數(shù)據(jù)表已有表進行分區(qū)表的實現(xiàn)

    MySQL對數(shù)據(jù)表已有表進行分區(qū)表的實現(xiàn)

    本文主要介紹對現(xiàn)有的一個表進行創(chuàng)建分區(qū)表,并把數(shù)據(jù)遷移到新表,可以按時間來分區(qū),具有一定的參考價值,感興趣的可以了解一下
    2021-10-10
  • mysql int(3)與int(11)的區(qū)別詳解

    mysql int(3)與int(11)的區(qū)別詳解

    這篇文章主要介紹了mysql int(3)與int(11)的區(qū)別詳解的相關(guān)資料,需要的朋友可以參考下
    2016-09-09
  • MySQL創(chuàng)建唯一索引時報錯Duplicate?entry?*?for?key問題

    MySQL創(chuàng)建唯一索引時報錯Duplicate?entry?*?for?key問題

    這篇文章主要介紹了MySQL創(chuàng)建唯一索引時報錯Duplicate?entry?*?for?key問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • mysql列轉(zhuǎn)行方法超詳細講解

    mysql列轉(zhuǎn)行方法超詳細講解

    mysql行列轉(zhuǎn)換在項目中應(yīng)用的極其頻繁,下面這篇文章主要給大家介紹了關(guān)于mysql列轉(zhuǎn)行方法的相關(guān)資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2023-09-09

最新評論