mysql裡建立自定義函式---將某欄位以逗號分割並取出第一個資料
阿新 • • 發佈:2019-01-06
一、檢視常見函式的功能是否開啟
mysql> show variables like '%func%';
value值為OFF時。需要將其開啟.
mysql> set global log_bin_trust_function_creators=1;
二、選擇想要建立函式的資料庫.
mysql> use xxx;
Database changed
三、設定命令終止符號
delimiter $$
四、定義函式
mysql函式split功能實現
五、測試函式是否建立成功DROP function IF EXISTS `func_splitString` $$ CREATE FUNCTION `func_splitString` ( f_string varchar(1000),f_delimiter varchar(5),f_order int) RETURNS varchar(255) CHARSET utf8 BEGIN declare result varchar(255) default ''; set result = reverse(substring_index(reverse(substring_index(f_string,f_delimiter,f_order)),f_delimiter,1)); return result; END$$
SELECT func_splitString('1,2,3,4,5,6,7',',',1);
六、測試成功後將命令終止符改回
delimiter ;
常用查詢語句:
- show function status; 檢視自定義的函式
- show variables like '%func%'; 檢視函式功能狀態
- SET GLOBAL log_bin_trust_function_creators=1; 開啟函式功能
- SET GLOBAL log_bin_trust_function_creators=0; 關閉函式功能
- select * from mysql.proc where db= 'bookbar' and type='function'; 檢視某個資料庫下自定義函式的詳細資訊
- SHOW CREATE FUNCTION funName; 檢視某個具體函式的建立過程。
- show procedure status; 檢視所有的儲存過程資訊
- select name from mysql.proc where db = 'test' and type = 'PROCEDURE'; 檢視test資料庫下的儲存過程名稱