mysql自定义函数写法_mysql自定义函数返回多列值

mysql自定义函数写法_mysql自定义函数返回多列值1、先查看函数功能是否开启:showvariableslike’%func%’;若是未开启则:SETGLOBALlog_bin_trust_function_creators=1;关闭则是:SETGLOBALlog_bin_trust_function_creators=0;2、自定义函数:delimiter$$;这个函数是合并两个字符串delimiter$$;DROPFUNC…


Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

1、先查看函数功能是否开启:show variables like ‘%func%’;

若是未开启则:SET GLOBAL log_bin_trust_function_creators=1;

关闭则是:SET GLOBAL log_bin_trust_function_creators=0;

2、自定义函数:

delimiter $$;

这个函数是合并两个字符串

delimiter $$;

DROP FUNCTION IF EXISTS addMaterialName $$;

CREATE FUNCTION addMaterialName(materialName VARCHAR(255),cheName VARCHAR(255))

RETURNS VARCHAR(255)

BEGIN

DECLARE newName VARCHAR(255) DEFAULT ”;

IF(ISNULL(materialName) or materialName =”) THEN set newName = cheName;

ELSEIF (ISNULL(cheName) or TRIM(cheName) =”)

THEN set newName = materialName;

ELSE set newName = CONCAT(materialName,'(‘,cheName,’)’);

END IF;

RETURN newName;

END $$;

delimiter ;

3、查看函数:

show function status;

其它自定义函数:

SET FOREIGN_KEY_CHECKS=0;

— —————————-

— Function structure for caseChoose

— —————————-

DROP FUNCTION IF EXISTS `caseChoose`;

DELIMITER ;;

CREATE DEFINER=`root`@`localhost` FUNCTION `caseChoose`(`chooseNum` int) RETURNS int(11)

BEGIN

— case 选择欲绝

case chooseNum

when 1 THEN RETURN 100;

when 2 THEN RETURN 200;

else RETURN 300;

end case;

END

;;

DELIMITER ;

— —————————-

— Function structure for forNum

— —————————-

DROP FUNCTION IF EXISTS `forNum`;

DELIMITER ;;

CREATE DEFINER=`root`@`localhost` FUNCTION `forNum`(`chooseNum` int) RETURNS int(11)

BEGIN

— loop1 :标志位:开始循环

loop1: LOOP

SET chooseNum=chooseNum+1;

IF chooseNum=100

— 跳出本次循环

then ITERATE loop1;

elseif chooseNum = 200

— 跳出循环

THEN LEAVE loop1;

— if要有结束语句否则错误

end if;

— 结束循环 标志位

end loop loop1;

— 返回内容

RETURN chooseNum +1;

END

;;

DELIMITER ;

— —————————-

— Function structure for forNumRepeat

— —————————-

DROP FUNCTION IF EXISTS `forNumRepeat`;

DELIMITER ;;

CREATE DEFINER=`root`@`localhost` FUNCTION `forNumRepeat`(`chooseNum` int) RETURNS int(11)

BEGIN

— REPEAT语句是有条件控制的循环语句。当满足特定条件时,就会跳出循环语句

— [begin_label:] REPEAT

— statement_list

— UNTIL search_condition

— END REPEAT [end_label]

REPEAT

SET chooseNum=chooseNum+1;

— 当数据为100的时候结束语句

UNTIL chooseNum=100

END REPEAT ;

RETURN chooseNum + 2;

END

;;

DELIMITER ;

— —————————-

— Function structure for forNumWhile

— —————————-

DROP FUNCTION IF EXISTS `forNumWhile`;

DELIMITER ;;

CREATE DEFINER=`root`@`localhost` FUNCTION `forNumWhile`(`chooseNum` int) RETURNS int(11)

BEGIN

— while do 语句:

WHILE chooseNum<100 DO

SET chooseNum=chooseNum+1000;

END WHILE ;

return chooseNum;

END

;;

DELIMITER ;

— —————————-

— Function structure for ifNum

— —————————-

DROP FUNCTION IF EXISTS `ifNum`;

DELIMITER ;;

CREATE DEFINER=`root`@`localhost` FUNCTION `ifNum`(`id` int,`num` int) RETURNS int(11)

BEGIN

— if 条件判断语句

if id < 3 THEN RETURN id;

ELSEIF num > 3 then RETURN num;

else RETURN 123;

end if;

END

;;

DELIMITER ;

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/195870.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • Samba服务器配置(什么情况下需要服务器)

    一、简介  Samba是一个能让Linux系统应用Microsoft网络通讯协议的软件,SMB(ServerMessageBlock)服务器消息块  Samba最大的功能是可以用于Linux与windows系统直接的文件共享和打印共享,既可以用于Windows与linux之间的文件共享也可以用于linux与linux之间的资源共享  基于客户机/服务器的协议,因而一台S…

    2022年4月14日
  • spring中过滤器和拦截器_springboot拦截器顺序

    spring中过滤器和拦截器_springboot拦截器顺序拦截器与过滤器的区别:1、过滤器和拦截器触发时机不一样,过滤器是在请求进入容器后,但请求进入servlet之前进行预处理的。请求结束返回也是,是在servlet处理完后,返回给前端之前。如下图:2、拦截器可以获取IOC容器中的各个bean,而过滤器就不行,因为拦截器是spring提供并管理的,spring的功能可以被拦截器使用,在拦截器里注入一个service,可以调用业务逻辑…

    2022年8月23日
  • MATLAB-梯度Roberts算子、拉普拉斯算子、Sobel算子、Prewitt算子对图像进行锐化

    MATLAB-梯度Roberts算子、拉普拉斯算子、Sobel算子、Prewitt算子对图像进行锐化1.锐化1.锐化(Sharpening):图像在传输或变换过程中(如未聚焦好)、受到各种干扰而退化,典型的是图像模糊,而图像的判读和识别中,常需突出目标的轮廓或边缘信息。2.边缘锐化:主要增强图像的轮廓边缘、细节(灰度跳变部分灰度跳变部分),以突出图像中景物的边缘或纹理,形成完整的物体边界,使边缘和轮廓模糊的图像清晰,又叫空域高通滤波(俗称为勾边处理)。从数学角度看,图像模糊相当于图像………

    2022年10月30日
  • GBDT算法梳理_gbdt分类

    GBDT算法梳理_gbdt分类集成算法大致分为两类:Boosting(迭代)和Bagging(装袋)。在前面的博客中,有提到,存在强依赖关系、必须串行生成的序列化方法,代表算法是Boosting,不存在强依赖关系、可同时生成的并行化方法,代表算法有Bagging、RandomForest。其中Boosting集成算法的典型代表算法有Adaboost,GBDT(GradientBoostingDecisionTree),…

    2022年10月12日
  • verilog交通灯控制器设计_fpga交通灯控制器课程设计

    verilog交通灯控制器设计_fpga交通灯控制器课程设计交通信号灯控制系统的Verilog实现作为数字系统设计入门案例,下面简单介绍最简单的交通控制系统,说明设计思路。首先给出要求:设计一个主干道和支干道十字路口的交通信号灯控制电路(1)一般情况下保持主干道通畅,主干道绿灯亮、支干道红灯亮,并且主干道绿灯亮时间不少于60秒。(2)主干道绿灯亮超过60秒,且支干道有车时,主干道红灯亮,支干道绿灯亮,但支干道亮灯时间不超过30秒。(3)每次主干道或支干道绿灯变红灯时,黄灯先亮5秒。1.逻辑抽象,明确输入输出。主干道和支干道的十字路口交通灯系统求优先保证

    2022年9月25日
  • 物联网操作系统HelloX开发人员入门指南

    物联网操作系统HelloX开发人员入门指南

    2022年1月21日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号