MySQL 自定义函数CREATE FUNCTION示例
内容摘要
mysql>
mysql> delimiter $$
mysql>
mysql> CREATE FUNCTION myFunction
-> (in_string VARCHAR(255),
-> in_find_str VARCHAR(20),
-> in_repl_str VARCHAR(20))
->
->
mysql> delimiter $$
mysql>
mysql> CREATE FUNCTION myFunction
-> (in_string VARCHAR(255),
-> in_find_str VARCHAR(20),
-> in_repl_str VARCHAR(20))
->
->
文章正文
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | mysql> mysql> delimiter $$ mysql> mysql> CREATE FUNCTION myFunction -> (in_string VARCHAR(255), -> in_find_str VARCHAR(20), -> in_repl_str VARCHAR(20)) -> -> RETURNS VARCHAR(255) -> BEGIN -> DECLARE l_new_string VARCHAR(255); -> DECLARE l_find_pos INT; -> -> SET l_find_pos=INSTR(in_string,in_find_str); -> -> IF (l_find_pos>0) THEN -> SET l_new_string=INSERT(in_string,l_find_pos,LENGTH(in_find_str),in_repl_str); -> ELSE -> SET l_new_string=in_string; -> END IF; -> RETURN(l_new_string); -> -> END $$ Query OK, 0 rows affected (0.00 sec) mysql> mysql> delimiter ; mysql> select myFunction( 'ABC' , 'A' , 'Z' ); +---------------------------+ | myFunction( 'ABC' , 'A' , 'Z' ) | +---------------------------+ | ZBC | +---------------------------+ 1 row in set (0.00 sec) mysql> drop function myFunction; Query OK, 0 rows affected (0.00 sec) |
代码注释