1. 程式人生 > >mysql裡建立自定義函式---將某欄位以逗號分割並取出第一個資料

mysql裡建立自定義函式---將某欄位以逗號分割並取出第一個資料

一、檢視常見函式的功能是否開啟

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

常用查詢語句:

  1. show function status;  檢視自定義的函式
  2. show variables like '%func%'; 檢視函式功能狀態
  3. SET GLOBAL log_bin_trust_function_creators=1; 開啟函式功能
  4. SET GLOBAL log_bin_trust_function_creators=0; 關閉函式功能
  5. select * from mysql.proc where db= 'bookbar' and type='function'; 檢視某個資料庫下自定義函式的詳細資訊
  6. SHOW CREATE FUNCTION funName;  檢視某個具體函式的建立過程。  
  7. show procedure status; 檢視所有的儲存過程資訊
  8. select name from mysql.proc where db = 'test' and type = 'PROCEDURE'; 檢視test資料庫下的儲存過程名稱