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;

mysql 自定义函数写法的更多相关文章

  1. mysql 自定义函数

    原文:http://www.cnblogs.com/zhangminghui/p/4113160.html 引言 MySQL本身提供了内置函数,这些函数的存在给我们日常的开发和数据操作带来了很大的便利 ...

  2. mysql自定义函数并在存储过程中调用,生成一千万条数据

    mysql 自定义函数,生成 n 个字符长度的随机字符串 -- sql function delimiter $$ create function rand_str(n int) returns VA ...

  3. MySQL 自定义函数CREATE FUNCTION实例

    分享一个MySQL 自定义函数CREATE FUNCTION的实例.mysql> delimiter $$mysql> CREATE FUNCTION myFunction-> (i ...

  4. MySQL自定义函数(四十六)

    MySQL自定义函数 一.什么是MYSQL自定义函数? mysql当中的自定义函数,我们简称为UDF,它实际上是一种对MySQL扩展的途径,其用法与内置函数相同. 二.自定义函数应该具备哪些条件? 我 ...

  5. MySQL自定义函数

    用户自定义函数(user-defined function,UDF)是一种对MySQL扩展的途径,其用法与内置函数相同. 自定义函数两个必要条件: 参数:可以有另个或多个 返回值:只能有一个 创建自定 ...

  6. MySQL自定义函数用法详解-复合结构自定义变量/流程控制

    自定义函数 (user-defined function UDF)就是用一个象ABS() 或 CONCAT()这样的固有(内建)函数一样作用的新函数去扩展MySQL. 所以UDF是对MySQL功能的一 ...

  7. MySQL自定义函数与存储过程

    1.前置条件 MySQL数据库中存在表user_info,其结构和数据如下: mysql> desc user_info; +-----------+----------+------+---- ...

  8. mysql自定义函数语法

    创建函数 DELIMITER $$DROP FUNCTION IF EXISTS `test` $$CREATE FUNCTION `test`(a int ,b int)RETURNS int BE ...

  9. java mysql自定义函数UDF之调用c函数

    正如sqlite可以定义自定义函数,它是通过API定义c函数的,不像其他,如这里的mysql.sqlite提供原生接口就可以方便的调用其他语言的方法,同样的mysql也支持调用其它语言的方法. goo ...

  10. MySql自定义函数-关于保留小数位的特殊需求

    背景 昨天,关于价格详情接口又来了一个小需求,而且有点特别.价格显示:改为保留两位小数,没错,就是保留两位小数.大家是不是想说这没啥特别的...数据库都有函数搞定了.例如四舍五入的ROUND(x,d) ...

随机推荐

  1. Go实现实时文件监控功能

    一.使用库介绍 fsnotify 是 Go 语言中的一个库,用于监听文件系统的变更事件.它允许程序注册对文件系统事件的兴趣,并在这些事件发生时接收通知.fsnotify 主要用来监控目录下的文件变化, ...

  2. Logstash 配置Java日志格式的方法

    Logstash 是用于日志收集的开源工具,通常与 Elasticsearch 和 Kibana 一起使用,形成 ELK Stack(现在称为 Elastic Stack).Logstash 非常灵活 ...

  3. 搭建高效攻防靶场vulfocus与Docker仓库管理实战:从听说到入门系列

    搭建高效攻防靶场vulfocus与Docker仓库管理实战:从听说到入门系列 vulfocus 简介 vulfocus,作为一款前沿的漏洞集成平台,它巧妙地将多种最新的CVE漏洞环境封装于Docker ...

  4. 基于图扑 HT for Web 实现的昼夜切换场景应用

    图扑软件 HT 的案例中有许多白天黑夜效果.这种效果在各类不同的项目中得到了广泛的应用和认可. 白天黑夜效果是视觉设计和交互设计中常见的一种手法.通过细致巧妙地调整色彩.亮度.对比度等视觉参数,即可成 ...

  5. Excel表格重复项特殊标注

    事件起因: 某不知名同事,需要将Excel表格中的重复选项特殊标注出来,故研究了一下   解决办法: 在Excel表格中,如果需要特殊标注重复项时候,可以参考以下办法 选项excel表格行/列 - 开 ...

  6. pinia - 为 antdv 表格添加加载状态

    前言 我们之前制作的 Vue3 + AntDesign Vue + SpringBoot 的增删改查小 Demo 的功能已经全部实现了,但是还是有一点不完美,在发送请求到后端返回数据这一段时间内前台未 ...

  7. cpu proc sys文件系统下的含义

    proc文件系统(/proc/sys/kernel/) sched_child_runs_first /proc/sys/kernel/sched_child_runs_first是Linux内核中的 ...

  8. react -- 什么是jsx

    概念:JSX 就是js和xml的缩写,表示在js代码中编写html模板结构,他是react中编写UI模板的方式 优势:html的声明式模板写法  js的可编程能力

  9. 01 如何具备编程思想(以 Python 举例)

    博客配套视频链接: https://space.bilibili.com/383551518?spm_id_from=333.1007.0.0 b 站直接看 配套 github 链接:https:// ...

  10. 4.flask 源码解析:上下文

    目录 一.flask 源码解析:上下文 1.1 上下文(application context 和 request context) 1.2 Update: 为什么要用 LocalProxy Flas ...