程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MySQL 自定義函數CREATE FUNCTION示例,createfunction

MySQL 自定義函數CREATE FUNCTION示例,createfunction

編輯:MySQL綜合教程

MySQL 自定義函數CREATE FUNCTION示例,createfunction


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> CREATE FUNCTION HelloWorld4()
-> RETURNS VARCHAR(20)
-> BEGIN
-> RETURN 'Hello World!';
-> END;
-> //
Query OK, 0 rows affected (0.00 sec)

mysql> select HelloWorld4() //
+---------------+
| HelloWorld4() |
+---------------+
| Hello World! |
+---------------+
1 row in set (0.00 sec)

如果你會其它數據庫的話, 那麼看看那個 SQL 存儲過程編寫 參考手冊 對你會有些幫助。

pan.baidu.com/...715080
 

mysql 自定義函數怎返回多個值

用存儲過程算了,函數不能返回一個值,如果要返回多值的話,那就返回一個table,用存儲過程同樣能達到效果
CREATE PROCEDURE `goodcheck`(
in xxx int
in xxx
...
out xxx ..
out xxx char
)
begin

select sum(productstockinfo.num) into production from productstockinfo where pro_id=productId;

end;
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved