MySQL 自定义函数 (Function) 示例
时间:2016-05-26 13:48 来源:linux.it.net.cn 作者:IT
一个很简单的 MySQL 函数定义
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)
mysql>
mysql>
(责任编辑:IT)
一个很简单的 MySQL 函数定义 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) mysql> mysql> (责任编辑:IT) |