• mysql 自定义函数写法


    1.业务场景

    有时候我们希望通过sql语句解决一些复杂的问题,比如根据一个ID 查询组织的路径。这个时候我们可以使用函数来实现。

    2.函数编写

    CREATE FUNCTION   getGroupById(groupid varchar(200))
      RETURNS VARCHAR(255)
     BEGIN
    	DECLARE name VARCHAR(64);
    	DECLARE rtnName VARCHAR(200) DEFAULT '';
    	DECLARE pid VARCHAR(64);
    
    	SELECT NAME_,PARENT_ID_ into name,pid  FROM OS_GROUP WHERE GROUP_ID_=groupid;
    
    	SET rtnName=CONCAT( name  , "/" , rtnName);
    
    	WHILE pid !='0' DO
         
    		SELECT NAME_,PARENT_ID_ into name,pid  FROM OS_GROUP WHERE GROUP_ID_=pid;
    		SET rtnName=CONCAT( name  , "/" , rtnName);
    	
    	END WHILE;
    
    	SET rtnName=TRIM('/' FROM rtnName);
    
     RETURN rtnName;
     END;
    
    
    1. 这里用到了多个变量赋值 使用 select a,b into a_,b_
    2. 使用了循环控制
    3. 使用了字符串函数处理

    3. 函数使用方法

    select getGroupById('1546682020572852225')

    得出的结果

    红迅集团/产品部/产品1

    4.需要注意的是mysql8 创建函数的时候会报错

    我们需要首先执行一下

    set GLOBAL log_bin_trust_function_creators =true;

  • 相关阅读:
    作业3月30号
    21、,模块与包的使用
    作业3月26号
    20、面向函数与匿名函数及模块
    作业3月25号
    19、迭代器及函数的递归调用
    作业3月24号
    06-函数
    3.17---购物车练习
    3.15---文件处理练习2
  • 原文地址:https://www.cnblogs.com/yg_zhang/p/16523731.html
Copyright © 2020-2023  润新知