mysql自定义函数写法_mysql自定义函数返回多列值
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 ;
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
相关文章
- 基于Appium+django+redis+mysql实现UI自动化测试平台
- MySQL函数编写:实现卓越结果(mysql函数编写)
- 点后精度问题MySQL中SUM函数精度处理技巧(mysqlsum小数)
- Mysql存储过程使用指南(mysql存储过程教程)
- MySQL单表多并发写入实践指南(mysql单表多并发写入)
- MySQL系统函数深入剖析(mysql系统函数)
- MySQL中的随机字符串函数丰富数据的新方式。(mysql随机字符串函数)
- MySQL中实现编码转换的函数(mysql编码函数)
- 多库MySQL快速切换多库技巧(mysql切换)
- MySQL中的数字索引优化技巧(mysql数字索引)
- 函数MySQL的Length函数使用指南(mysql的length)
- MySQL创建表出现错误的解决方案(mysql创建表错误)
- MySQL函数实现递归算法(mysql函数递归)
- 数据MySQL实现每秒惊人写入速度!(mysql每秒写入)
- MySQL服务如何开启?教你轻松搞定!(mysql服务开启)
- MySQL函数中参数的实用性分析(mysql函数参数)
- MySQL中unhex函数的用法与实例解析(mysql中unhex)
- MySQL中的Sum函数统计数据总和(mysql 中sum函数)
- MySQL中的Apply语句,简单易懂易用(mysql中apply)
- MySQL数据库的增删改查技巧(c mysql 增删改查)
- 利用Bit函数管理MySQL常用工具(bit()mysql)
- 8G内存中MySQL性能优化之道(8g mysql优化)
- MySQL函数封装简化复杂的SQL操作(mysql中函数封装)
- MySQL轻松上手一键搭建教程大揭秘(mysql一键搭建)
- MySQL中的ZIP默认设置简介(mysql zip默认)
- MySQL排序了解两种排序方式(mysql 两 排序)
- MySQL下载安装及激活步骤详解(mysql下载安装激活)
- MySQL使用SUM函数实现一行相加(mysql一行相加)