MySQL資料庫進階(二)——自訂函數

來源:互聯網
上載者:User

標籤:MySQL   自訂   函數   

MySQL資料庫進階(二)——自訂函數一、自訂函數簡介

自訂函數 (user-defined function UDF)是一種對MySQL擴充的途徑,其用法和內建函數相同。
自訂函數的兩個必要條件:
A、參數
B、傳回值(必須有)。函數可以返回任意類型的值。

二、自訂函數的使用1、自訂函數文法
CREATE?FUNCTION?function_name(parameter_nametype,[parameter_name type,...])RETURNS?{STRING|INTEGER|REAL}runtime_body

在函數體中可以使用更為複雜的文法,比如複合結構/流程式控制制/任何SQL語句/定義變數等。
帶複合結構的函數體的自訂函數的建立文法如下:

DELIMITER //CREATE?FUNCTION?function_name(parameter_nametype,[parameter_name type,...])RETURNS?{STRING|INTEGER|REAL}BEGIN//bodyEND//      /* 此處的”//“為告訴系統函數定義結束 */

當函數體內需要執行的是多條語句時,要使用BEGIN...END語句;且當編寫函數體內容的時候,需要使用DELIMITER關鍵字將分隔字元先修改為別的,否則編寫語句的時候寫到’;’的時候會直接執行,導致函數編寫失敗。

2、建立帶複合結構的函數體的自訂函數

在函數體中,如果包含多條語句,需要把多條語句放到BEGIN...END語句塊中。
?複合結構可以包括聲明、迴圈、控制結構。

3、自訂函數中定義局部變數

變數定義的文法:
DECLARE var_name[,varname]...date_type [DEFAULT VALUE];
為變數賦值的文法:

SET parameter_name = value[,parameter_name = value...]SELECT INTO parameter_name

執行個體:

DECLARE x int;SELECT COUNT(id) FROM tdb_name INTO x;SET @x = 100;
4、流程式控制制

自訂函數中可以使用流程式控制制來控制語句的執行。
MySQL中可以使用IF語句、CASE語句、LOOP語句、LEAVE語句、ITERATE語句、REPEAT語句和WHILE語句來進行流程式控制制。
A、IF語句
IF語句用來進行條件判斷。根據是否滿足條件,將執行不同的語句。其文法的基本形式如下:

IF search_condition THEN statement_list    [ELSEIF search_condition THEN statement_list] ...    [ELSE statement_list] END IF 

search_condition參數表示條件判斷語句;statement_list參數表示不同條件的執行語句。
IF語句都需要使用END IF來結束。
IF語句執行個體:

IF age>20 THEN SET @[email protected]+1;  ELSEIF age=20 THEN SET @[email protected]+1;  ELSE SET @[email protected]+1;  END IF; 

B、CASE語句
CASE語句也用來進行條件判斷,其可以實現比IF語句更複雜的條件判斷。CASE語句的基本形式如下:

CASE case_value      WHEN when_value THEN statement_list      [WHEN when_value THEN statement_list] ...      [ELSE statement_list] END CASE 

case_value參數表示條件判斷的變數;when_value參數表示變數的取值;
statement_list參數表示不同when_value值的執行語句。
CASE語句執行個體:

CASE age WHEN 20 THEN SET @[email protected]+1; ELSE SET @[email protected]+1; END CASE ; 

CASE語句還有另一種形式,文法如下:

CASE        WHEN search_condition THEN statement_list        [WHEN search_condition THEN statement_list] ...        [ELSE statement_list] END CASE 

search_condition參數表示條件判斷語句;statement_list參數表示不同條件的執行語句。
CASE語句執行個體:

CASE        WHEN age=20 THEN SET @[email protected]+1;        ELSE SET @[email protected]+1; END CASE ; 

C、LOOP語句
LOOP語句可以使某些特定的語句重複執行,實現一個簡單的迴圈。但LOOP語句本身沒有停止迴圈的語句,必須是遇到LEAVE語句等才能停止迴圈。
LOOP語句的文法的基本形式如下:

[begin_label:] LOOP statement_list END LOOP [end_label] 

begin_label參數和end_label參數分別表示迴圈開始和結束的標誌,兩個標誌必須相同,而且都可以省略;statement_list參數表示需要迴圈執行的語句。
LOOP語句執行個體:

add_num: LOOP  SET @[email protected]+1;  END LOOP add_num ; 

D、LEAVE語句
LEAVE語句主要用於跳出迴圈控制。其文法形式如下:
LEAVE label
label參數表示迴圈的標誌。
LEAVE語句執行個體:

add_num: LOOP SET @[email protected]+1; IF @count=100 THEN LEAVE add_num ; END LOOP add_num ; 

E、ITERATE語句
ITERATE語句也是用來跳出迴圈的語句。但是,ITERATE語句是跳出本次迴圈,然後直接進入下一次迴圈。
ITERATE語句只可以出現在LOOP、REPEAT、WHILE語句內。
ITERATE語句的基本文法形式如下:
ITERATE label
其中,label參數表示迴圈的標誌。
ITERATE語句執行個體:

add_num: LOOP SET @[email protected]+1; IF @count=100 THEN LEAVE add_num ; ELSE IF MOD(@count,3)=0 THEN ITERATE add_num; SELECT * FROM employee ; END LOOP add_num ; 

LEAVE語句是跳出整個迴圈,然後執行迴圈後面的程式。而ITERATE語句是跳出本次迴圈,然後進入下一次迴圈。
F、REPEAT語句
REPEAT語句是有條件控制的迴圈語句。當滿足特定條件時,就會跳出迴圈語句。REPEAT語句的基本文法形式如下:

[begin_label:] REPEAT statement_list UNTIL search_condition END REPEAT [end_label] 

REPEAT迴圈都用END REPEAT結束。
其中,statement_list參數表示迴圈的執行語句;search_condition參數表示結束迴圈的條件,滿足該條件時迴圈結束。

REPEAT SET @[email protected]+1; UNTIL @count=100 END REPEAT ; 

G、WHILE語句
WHILE語句也是有條件控制的迴圈語句。但WHILE語句和REPEAT語句是不一樣的。
WHILE語句是當滿足條件時,執行迴圈內的語句。
WHILE語句的基本文法形式如下:

[begin_label:] WHILE search_condition DO statement_list END WHILE [end_label] 

WHILE迴圈需要使用END WHILE來結束。
其中,search_condition參數表示迴圈執行的條件,滿足該條件時迴圈執行;
statement_list參數表示迴圈的執行語句。

WHILE @count<100 DO SET @c[email protected]+1; END WHILE ; 
5、刪除自訂函數

DROP FUNCTION functionName;

6、自訂函數的調用

SELECT function_name(parameter_value,...);

三、自訂函數執行個體1、根據學產生績判斷學產生績是否優秀

以下函數能夠根據輸入範圍輸出成績是否優良差。
小於60 不及格
60-69 需要努力
70-79 成績中等
80-89 成績優秀
90-100 成績良好

create function getGrade(mark int)returns VARCHAR(20)beginreturn (       case FLOOR(mark/10)        when 5 then ‘不及格‘        when 6 then ‘繼續努力‘        when 7 then ‘成績良好‘        else ‘成績優秀‘       end);END
2、漢字轉拼音函數

需要先建立一張表,儲存字元集GBK的代碼和拼音之間對應關係。

CREATE TABLE IF NOT EXISTS `t_base_pinyin` (  `pin_yin_` varchar(255) CHARACTER SET gbk NOT NULL,  `code_` int(11) NOT NULL,  PRIMARY KEY (`code_`)) ENGINE=InnoDB DEFAULT CHARSET=latin1;

插入資料:
INSERT INTO t_base_pinyin (pin_yin_,code_) VALUES ("a", 20319),("ai", 20317),("an", 20304),("ang", 20295),("ao", 20292),("ba", 20283),("bai", 20265),("ban", 20257),("bang", 20242),("bao", 20230),("bei", 20051),("ben", 20036),("beng", 20032),("bi", 20026),("bian", 20002),("biao", 19990),("bie", 19986),("bin", 19982),("bing", 19976),("bo", 19805),("bu", 19784),("ca", 19775),("cai", 19774),("can", 19763),("cang", 19756),("cao", 19751),("ce", 19746),("ceng", 19741),("cha", 19739),("chai", 19728),("chan", 19725),("chang", 19715),("chao", 19540),("che", 19531),("chen", 19525),("cheng", 19515),("chi", 19500),("chong", 19484),("chou", 19479),("chu", 19467),("chuai", 19289),("chuan", 19288),("chuang", 19281),("chui", 19275),("chun", 19270),("chuo", 19263),("ci", 19261),("cong", 19249),("cou", 19243),("cu", 19242),("cuan", 19238),("cui", 19235),("cun", 19227),("cuo", 19224),("da", 19218),("dai", 19212),("dan", 19038),("dang", 19023),("dao", 19018),("de", 19006),("deng", 19003),("di", 18996),("dian", 18977),("diao", 18961),("die", 18952),("ding", 18783),("diu", 18774),("dong", 18773),("dou", 18763),("du", 18756),("duan", 18741),("dui", 18735),("dun", 18731),("duo", 18722),("e", 18710),("en", 18697),("er", 18696),("fa", 18526),("fan", 18518),("fang", 18501),("fei", 18490),("fen", 18478),("feng", 18463),("fo", 18448),("fou", 18447),("fu", 18446),("ga", 18239),("gai", 18237),("gan", 18231),("gang", 18220),("gao", 18211),("ge", 18201),("gei", 18184),("gen", 18183),("geng", 18181),("gong", 18012),("gou", 17997),("gu", 17988),("gua", 17970),("guai", 17964),("guan", 17961),("guang", 17950),("gui", 17947),("gun", 17931),("guo", 17928),("ha", 17922),("hai", 17759),("han", 17752),("hang", 17733),("hao", 17730),("he", 17721),("hei", 17703),("hen", 17701),("heng", 17697),("hong", 17692),("hou", 17683),("hu", 17676),("hua", 17496),("huai", 17487),("huan", 17482),("huang", 17468),("hui", 17454),("hun", 17433),("huo", 17427),("ji", 17417),("jia", 17202),("jian", 17185),("jiang", 16983),("jiao", 16970),("jie", 16942),("jin", 16915),("jing", 16733),("jiong", 16708),("jiu", 16706),("ju", 16689),("juan", 16664),("jue", 16657),("jun", 16647),("ka", 16474),("kai", 16470),("kan", 16465),("kang", 16459),("kao", 16452),("ke", 16448),("ken", 16433),("keng", 16429),("kong", 16427),("kou", 16423),("ku", 16419),("kua", 16412),("kuai", 16407),("kuan", 16403),("kuang", 16401),("kui", 16393),("kun", 16220),("kuo", 16216),("la", 16212),("lai", 16205),("lan", 16202),("lang", 16187),("lao", 16180),("le", 16171),("lei", 16169),("leng", 16158),("li", 16155),("lia", 15959),("lian", 15958),("liang", 15944),("liao", 15933),("lie", 15920),("lin", 15915),("ling", 15903),("liu", 15889),("long", 15878),("lou", 15707),("lu", 15701),("lv", 15681),("luan", 15667),("lue", 15661),("lun", 15659),("luo", 15652),("ma", 15640),("mai", 15631),("man", 15625),("mang", 15454),("mao", 15448),("me", 15436),("mei", 15435),("men", 15419),("meng", 15416),("mi", 15408),("mian", 15394),("miao", 15385),("mie", 15377),("min", 15375),("ming", 15369),("miu", 15363),("mo", 15362),("mou", 15183),("mu", 15180),("na", 15165),("nai", 15158),("nan", 15153),("nang", 15150),("nao", 15149),("ne", 15144),("nei", 15143),("nen", 15141),("neng", 15140),("ni", 15139),("nian", 15128),("niang", 15121),("niao", 15119),("nie", 15117),("nin", 15110),("ning", 15109),("niu", 14941),("nong", 14937),("nu", 14933),("nv", 14930),("nuan", 14929),("nue", 14928),("nuo", 14926),("o", 14922),("ou", 14921),("pa", 14914),("pai", 14908),("pan", 14902),("pang", 14894),("pao", 14889),("pei", 14882),("pen", 14873),("peng", 14871),("pi", 14857),("pian", 14678),("piao", 14674),("pie", 14670),("pin", 14668),("ping", 14663),("po", 14654),("pu", 14645),("qi", 14630),("qia", 14594),("qian", 14429),("qiang", 14407),("qiao", 14399),("qie", 14384),("qin", 14379),("qing", 14368),("qiong", 14355),("qiu", 14353),("qu", 14345),("quan", 14170),("que", 14159),("qun", 14151),("ran", 14149),("rang", 14145),("rao", 14140),("re", 14137),("ren", 14135),("reng", 14125),("ri", 14123),("rong", 14122),("rou", 14112),("ru", 14109),("ruan", 14099),("rui", 14097),("run", 14094),("ruo", 14092),("sa", 14090),("sai", 14087),("san", 14083),("sang", 13917),("sao", 13914),("se", 13910),("sen", 13907),("seng", 13906),("sha", 13905),("shai", 13896),("shan", 13894),("shang", 13878),("shao", 13870),("she", 13859),("shen", 13847),("sheng", 13831),("shi", 13658),("shou", 13611),("shu", 13601),("shua", 13406),("shuai", 13404),("shuan", 13400),("shuang", 13398),("shui", 13395),("shun", 13391),("shuo", 13387),("si", 13383),("song", 13367),("sou", 13359),("su", 13356),("suan", 13343),("sui", 13340),("sun", 13329),("suo", 13326),("ta", 13318),("tai", 13147),("tan", 13138),("tang", 13120),("tao", 13107),("te", 13096),("teng", 13095),("ti", 13091),("tian", 13076),("tiao", 13068),("tie", 13063),("ting", 13060),("tong", 12888),("tou", 12875),("tu", 12871),("tuan", 12860) ,("tui", 12858),("tun", 12852),("tuo", 12849),("wa", 12838),("wai", 12831),("wan", 12829),("wang", 12812),("wei", 12802),("wen", 12607),("weng", 12597),("wo", 12594),("wu", 12585),("xi", 12556),("xia", 12359),("xian", 12346),("xiang", 12320),("xiao", 12300),("xie", 12120),("xin", 12099),("xing", 12089),("xiong", 12074),("xiu", 12067),("xu", 12058),("xuan", 12039),("xue", 11867),("xun", 11861),("ya", 11847),("yan", 11831),("yang", 11798),("yao", 11781),("ye", 11604),("yi", 11589),("yin", 11536),("ying", 11358),("yo", 11340),("yong", 11339),("you", 11324),("yu", 11303),("yuan", 11097),("yue", 11077),("yun", 11067),("za", 11055),("zai", 11052),("zan", 11045),("zang", 11041),("zao", 11038),("ze", 11024),("zei", 11020),("zen", 11019),("zeng", 11018),("zha", 11014),("zhai", 10838),("zhan", 10832),("zhang", 10815),("zhao", 10800),("zhe", 10790),("zhen", 10780),("zheng", 10764),("zhi", 10587),("zhong", 10544),("zhou", 10533),("zhu", 10519),("zhua", 10331),("zhuai", 10329),("zhuan", 10328),("zhuang", 10322),("zhui", 10315),("zhun", 10309),("zhuo", 10307),("zi", 10296),("zong", 10281),("zou", 10274),("zu", 10270),("zuan", 10262),("zui", 10260),("zun", 10256),("zuo", 10254);
漢字產生拼音的函數:

DROP FUNCTION IF EXISTS PINYIN;CREATE FUNCTION PINYIN(NAME VARCHAR(255) CHARSET GBK)RETURNS VARCHAR(255) CHARSET gbkBEGIN    DECLARE mycode INT;    DECLARE tmp_lcode VARCHAR(2) CHARSET gbk;    DECLARE lcode INT;    DECLARE tmp_rcode VARCHAR(2) CHARSET gbk;    DECLARE rcode INT;    DECLARE mypy VARCHAR(255) CHARSET gbk DEFAULT ‘‘;    DECLARE lp INT;    SET mycode = 0;    SET lp = 1;    SET NAME = HEX(NAME);    WHILE lp < LENGTH(NAME) DO        SET tmp_lcode = SUBSTRING(NAME, lp, 2);        SET lcode = CAST(ASCII(UNHEX(tmp_lcode)) AS UNSIGNED);         SET tmp_rcode = SUBSTRING(NAME, lp + 2, 2);        SET rcode = CAST(ASCII(UNHEX(tmp_rcode)) AS UNSIGNED);         IF lcode > 128 THEN            SET mycode =65536 - lcode * 256 - rcode ;            SELECT CONCAT(mypy,pin_yin_) INTO mypy FROM t_base_pinyin WHERE CODE_ >= ABS(mycode) ORDER BY CODE_ ASC LIMIT 1;        SET lp = lp + 4;        ELSESET mypy = CONCAT(mypy,CHAR(CAST(ASCII(UNHEX(SUBSTRING(NAME, lp, 2))) AS UNSIGNED)));            SET lp = lp + 2;        END IF;    END WHILE;    RETURN LOWER(mypy);END;
3、阿拉伯數字轉漢字
create FUNCTION tohanzi (n_LowerMoney DECIMAL)RETURNS VARCHAR(120)BEGIN Declare v_LowerStr VARCHAR(200) ; Declare v_UpperPart VARCHAR(200) ; Declare v_UpperStr VARCHAR(200) ; Declare i_I int ; set v_LowerStr = LTRIM(RTRIM(ROUND(n_LowerMoney,2 ) ) ) ; set i_I = 1 ; set v_UpperStr = ‘‘ ; while ( i_I <=char_length(v_LowerStr ) ) do set v_UpperPart = CONCAT( case substring(v_LowerStr,char_length(v_LowerStr) - i_I + 1,1 ) WHEN ‘.‘ THEN ‘元‘ WHEN ‘0‘ THEN ‘零‘ WHEN ‘1‘ THEN ‘壹‘ WHEN ‘2‘ THEN ‘貳‘ WHEN ‘3‘ THEN ‘三‘ WHEN ‘4‘ THEN ‘肆‘ WHEN ‘5‘ THEN ‘伍‘ WHEN ‘6‘ THEN ‘陸‘ WHEN ‘7‘ THEN ‘柒‘ WHEN ‘8‘ THEN ‘捌‘ WHEN ‘9‘ THEN ‘玖‘ END, case i_I WHEN 1 THEN ‘分‘ WHEN 2 THEN ‘角‘ WHEN 3 THEN ‘‘ WHEN 4 THEN ‘‘ WHEN 5 THEN ‘拾‘ WHEN 6 THEN ‘佰‘ WHEN 7 THEN ‘仟‘ WHEN 8 THEN ‘萬‘ WHEN 9 THEN ‘拾‘ WHEN 10 THEN ‘佰‘ WHEN 11 THEN ‘仟‘ WHEN 12 THEN ‘億‘ WHEN 13 THEN ‘拾‘ WHEN 14 THEN ‘佰‘ WHEN 15 THEN ‘仟‘ WHEN 16 THEN ‘萬‘ ELSE ‘‘ END ); set v_UpperStr =CONCAT( v_UpperPart , v_UpperStr) ; set i_I = i_I + 1 ; end while; set v_UpperStr = REPLACE(v_UpperStr,‘零拾‘,‘零‘) ; set v_UpperStr = REPLACE(v_UpperStr,‘零佰‘,‘零‘) ; set v_UpperStr = REPLACE(v_UpperStr,‘零仟‘,‘零‘) ; set v_UpperStr = REPLACE(v_UpperStr,‘零零零‘,‘零‘) ; set v_UpperStr = REPLACE(v_UpperStr,‘零零‘,‘零‘) ; set v_UpperStr = REPLACE(v_UpperStr,‘零角零分‘,‘整‘) ; set v_UpperStr = REPLACE(v_UpperStr,‘零分‘,‘整‘) ; set v_UpperStr = REPLACE(v_UpperStr,‘零角‘,‘零‘) ; set v_UpperStr = REPLACE(v_UpperStr,‘零億零萬零元‘,‘億元‘) ; set v_UpperStr = REPLACE(v_UpperStr,‘億零萬零元‘,‘億元‘) ; set v_UpperStr = REPLACE(v_UpperStr,‘零億零萬‘,‘億‘) ; set v_UpperStr = REPLACE(v_UpperStr,‘零萬零元‘,‘萬元‘) ; set v_UpperStr = REPLACE(v_UpperStr,‘萬零元‘,‘萬元‘) ; set v_UpperStr = REPLACE(v_UpperStr,‘零億‘,‘億‘) ; set v_UpperStr = REPLACE(v_UpperStr,‘零萬‘,‘萬‘) ; set v_UpperStr = REPLACE(v_UpperStr,‘零元‘,‘元‘) ; set v_UpperStr = REPLACE(v_UpperStr,‘零零‘,‘零‘) ; if ( ‘元‘ = substring(v_UpperStr,1,1)) then set v_UpperStr = substring(v_UpperStr,2,(char_length(v_UpperStr) - 1)); end if; if ( ‘零‘ = substring(v_UpperStr,1,1)) then set v_UpperStr = substring(v_UpperStr,2,(char_length(v_UpperStr) - 1)) ; end if; if ( ‘角‘ = substring(v_UpperStr,1,1)) then set v_UpperStr = substring(v_UpperStr,2,(char_length(v_UpperStr) - 1)) ; end if; if ( ‘分‘ = substring(v_UpperStr,1,1)) then set v_UpperStr = substring(v_UpperStr,2,(char_length(v_UpperStr) - 1)) ; end if; if (‘整‘ = substring(v_UpperStr,1,1)) then set v_UpperStr = ‘零元整‘ ; end if; return v_UpperStr; END
4、隨機產生姓名的函數

使用三個字串,存放使用者的姓名,使用隨機函數從姓名中隨機排列組合成人名。

create function CreateName()RETURNS varchar(3)beginDECLARE LN VARCHAR(300);DECLARE MN VARCHAR(500);DECLARE FN VARCHAR(500);DECLARE LN_N INT;DECLARE MN_N INT;DECLARE FN_N INT;SET LN=‘李王張劉陳楊黃趙周吳徐孫朱馬胡郭林何高梁鄭羅宋謝唐韓曹許鄧蕭馮曾程蔡彭潘袁於董餘蘇葉呂魏蔣田杜丁沈薑範江傅鐘盧汪戴崔任陸廖姚方金邱夏譚韋賈鄒石熊孟秦閻薛侯雷白龍段郝孔邵史毛常萬顧賴武康賀嚴尹錢施牛洪龔‘;SET MN=‘偉剛勇毅俊雲蓮真環雪榮愛妹霞香月鶯媛豔瑞凡佳嘉瓊勤珍貞莉桂娣葉璧才發武麗琳輪翰朗伯宏言若鳴朋斌梁棟維啟克倫翔旭鵬澤晨辰士以建家致樹炎德河哲江超浩璐婭琦晶裕華慧巧美婕馨影荔枝思心邦承樂紹功松善厚慶磊民友玉萍紅娥玲芬芳燕彩蘭鳳潔梅秀娟英行時泰盛雄琛鈞冠策騰楠榕風航弘峰強軍平保東文輝力明永健世廣志義興良海山仁波寧貴福生龍元全國勝學祥才發武新利清飛彬富順信子傑濤昌成康星光天達安岩中茂進林有堅和彪博誠先敬震振壯會思群豪心邦承樂紹功松善厚慶磊民友裕河哲江超浩亮政謙亨奇固之輪翰朗伯宏言若鳴朋斌梁棟維啟克倫翔旭鵬澤晨辰士以建家致樹炎德行時泰盛雄琛鈞冠策騰楠榕風航弘‘;SET FN=‘偉剛勇毅俊雲蓮真環雪榮愛妹霞香月鶯媛豔瑞凡佳嘉瓊勤珍貞莉桂娣葉璧才發武麗琳輪翰朗伯宏言若鳴朋斌梁棟維啟克倫翔旭鵬澤晨辰士以建家致樹炎德河哲江超浩璐婭琦晶裕華慧巧美婕馨影荔枝思心邦承樂紹功松善厚慶磊民友玉萍紅娥玲芬芳燕彩蘭鳳潔梅秀娟英行時泰盛雄琛鈞冠策騰楠榕風航弘峰強軍平保東文輝力明永健世廣志義興良海山仁波寧貴福生龍元全國勝學祥才發武新利清飛彬富順信子傑濤昌成康星光天達安岩中茂進林有堅和彪博誠先敬震振壯會思群豪心邦承樂紹功松善厚慶磊民友裕河哲江超浩亮政謙亨奇固之輪翰朗伯宏言若鳴朋斌梁棟維啟克倫翔旭鵬澤晨辰士以建家致樹炎德行時泰盛雄琛鈞冠策騰楠榕風航弘‘;SET LN_N=CHAR_LENGTH(LN);SET MN_N=CHAR_LENGTH(MN);SET FN_N=CHAR_LENGTH(FN);return Concat(substring(LN,ceil(rand()*LN_N),1),substring(MN,ceil(rand()*MN_N),1),substring(FN,ceil(rand()*FN_N),1));End

MySQL資料庫進階(二)——自訂函數

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.