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 ;

mysql自定义函数for循环_mysql自定义函数相关推荐

  1. mysql 日期时间格式化字符串_MySQL日期函数与日期转换格式化函数大全

    Mysql作为一款开元的免费关系型数据库,用户基础非常庞大,本文列出了MYSQL常用日期函数与日期转换格式化函数 1.DAYOFWEEK(date) SELECT DAYOFWEEK('2016-01 ...

  2. mysql带中文日期转换_MySQL日期函数与日期转换格式化函数大全

    Mysql作为一款开元的免费关系型数据库,用户基础非常庞大,本文列出了MYSQL常用日期函数与日期转换格式化函数 1.DAYOFWEEK(date) 2.WEEKDAY(date) 3.DAYOFMO ...

  3. mysql开窗函数有哪些_mysql开窗函数

    开窗函数: 它可以理解为记录集合,开窗函数也就是在满足某种条件的记录集合上执行的特殊函数. 对于每条记录都要在此窗口内执行函数,有的函数随着记录不同,窗口大小都是固定的,这种属于静态窗口: 有的函数则 ...

  4. mysql的排名函数怎么用_MySQL排名函数

    MySQL排名函数 MySQL使用一种排名功能,该函数使我们能够对数据库中分区的每一行进行排名.排名函数还是MySQL窗口函数的一部分. MySQL中的排名函数可以与以下子句一起使用: 他们总是使用O ...

  5. mysql自定义函数的分号_mysql自定义function问题解决

    最近公司生产环境的系统有个需求,需要往mysql数据库的一张表里批量添加数据,业务部门给的数据大致如下: 中心 3.5L箱子(条码) 8L箱子(条码) 15L箱子(条码) 20L箱子(条码) 浙江物流 ...

  6. mysql函数保留小数_MySql自定义函数-关于保留小数位的特殊需求

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

  7. mysql 自定义函数报错_Mysql自定义函数报错解决方法

    [最近研究mysql数据库性能的相关问题,为了对比不同版本之间的差别.笔者找了一台测试服务器升级了该服务器的mysql数据库进行测试,在升级mysql过程中遇到了一些问题并将其 1.在MySql中创建 ...

  8. mysql 自定义函数报错_Mysql自定义函数报错解决方法 | 学步园

    1.在MySql中创建自定义函数报错信息如下: ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL, or READ ...

  9. MySQL 自定义函数设置执行时间_mysql自定义函数计算时间段内的工作日(支持跨年)...

    ① 同一年的情况下计算工作日函数 CREATE DEFINER=`root`@`%` FUNCTION `WORKDAYSONEYEAR`(`datefrom` datetime,`dateto` d ...

  10. mysql自定义变量比较大小_MySQL 自定义变量@ 常用案例

    以下文章来源于SQL开发与优化 大家好,我是知数堂SQL 优化班老师 网名:骑龟的兔子 很久没有写文章,最近碰到了一个非常有意思的Oracle SQL 案例, 这个案例,我用了一些窗口函数来解决的,后 ...

最新文章

  1. 微软推出Python入门课,登上GitHub趋势榜第一
  2. 蓝牙驱动卸载后自动安装_智能产品 | 安装水循环系统后,全自动洗车机洗车会更节水吗?...
  3. C++ using namespace 命名空间的定义与使用
  4. 城市交通路网(信息学奥赛一本通-T1261)
  5. 使用PostgREST的RestAPI操作之 类型转JSON对象 | 嵌入视图
  6. Tabs Outliner(标签系统)
  7. 学python有前途吗-现在学Python还有前途吗?能做什么?
  8. 复制百度文库内容chrome插件
  9. Intellij IDEA2017安装破解
  10. 两个分数化简比怎么化_分数化简比的方法什么,六年级上求比值与化简比的对比...
  11. python开发小程序拼团_【微擎微赞模块】砍价宝4.5小程序版+小程序前端+后端+素材包+砍价+抢购+拼团...
  12. SELECT command denied to user ''@'%' for column 'xxx_id' in table 'users_xxx' 权限问题
  13. 如何进行 360 评估
  14. java在线观看(jav在线网站)
  15. 中国工商银行网上银行新B2C在线支付接口文档下载地址
  16. java商品管理系统
  17. android webview 找不到网页,webview loadUrl 显示“找不到网页”
  18. 【Java_SSM_kuang】
  19. 抠图换背景的软件哪个好?快把这些软件收好
  20. 对QQ通信协议的讨论

热门文章

  1. DIALOGBOXPARAMA
  2. 基于java的校园兼职管理系统_基于JAVA WEB的大学生兼职管理系统的分析与设计
  3. java编程语言的优点你知道几个
  4. java面试宝典app_Java面试宝典
  5. xp系统支持的python版本_xp系统安装不上python
  6. Spring中JdbcTemplate各个方法的使用介绍(持续更新中....)
  7. 读《UNIX 编程艺术》
  8. linux服务器上的cad病毒,LibreCAD_LibreCAD下载[2021官方最新版]LibreCAD安全下载_ 极速下载...
  9. 出现报错Maximum call stack size exceeded
  10. 【PID优化】基于蝙蝠 粒子群 花卉授粉算法和布谷鸟搜索算法实现热交换器的PI控制器优化