前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >mysql自定义函数写法_mysql自定义函数返回多列值

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

作者头像
全栈程序员站长
发布2022-10-05 08:56:45
2.3K0
发布2022-10-05 08:56:45
举报

大家好,又见面了,我是你们的朋友全栈君。

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 ;

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022年9月8日 下,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档