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;
- 这里用到了多个变量赋值 使用 select a,b into a_,b_
- 使用了循环控制
- 使用了字符串函数处理
3. 函数使用方法
select getGroupById('1546682020572852225')
得出的结果
红迅集团/产品部/产品1
4.需要注意的是mysql8 创建函数的时候会报错
我们需要首先执行一下
set GLOBAL log_bin_trust_function_creators =true;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
2007-07-27 招聘.NET开发人员