mysql里创建自定义函数---将某字段以逗号分割并取出第一个数据

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/blq4411568/article/details/75890257

一、查看常见函数的功能是否开启

	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数据库下的存储过程名称


展开阅读全文

没有更多推荐了,返回首页