Mysql的函数使用方法
2016-01-18 21:19
656 查看
今天有点临时需求要计算一张表的结果,不想写代码,想到了mysql的自定义函数。碰到了很多问题,为了方便一下使用,在此记录一下。
需求:一张表中,有比分,需要查询出比赛id和比赛结果。分析: 单表查询没啥的,困难就困难在怎么判断比分之后返回想要的结果。
这里我把比赛结果分别定义代号,1主场胜、2平局、3客场胜
函数逻辑:
接收两个参数,判断参数的大小,分别返回结果。
这里分别是存储过程和函数,我们选择函数
设置参数,这里的参数是接收的参数,例如 count(id) 接收一个参数
下一步,设置返回类型
点击完成即可。会出现以下界面
现在开始在BEGIN ..END;;中间写逻辑,具体语法需要百度。
我这里主要是if...elseif..else的逻辑,代码如下:
保存--getMatchResult。如果语法有错误,保存会报错,根据提示信息去查找错误。
使用函数:
我这里为了方便,直接写了两个参数,结果跟预想一样。 第一个参数是主场分数,第二个参数是客场分数,3表示客场胜。
这里使用demiter修改分解符为// ,如果还是使用分号分界则报错了。使用//分界执行后,显示正常。
创建函数(注意使用//分界)
使用函数
分号结尾没效果,必须要用// ,除非退出mysql shell重新登录。返回结果是我们需要的,第2个参数为客场。3表示客场胜。
到此简单试用完成,临时查询很方便。
来自为知笔记(Wiz)
需求:一张表中,有比分,需要查询出比赛id和比赛结果。分析: 单表查询没啥的,困难就困难在怎么判断比分之后返回想要的结果。
这里我把比赛结果分别定义代号,1主场胜、2平局、3客场胜
函数逻辑:
接收两个参数,判断参数的大小,分别返回结果。
实现:
Navicat操作:
navicat for mysql 工具内--创建函数这里分别是存储过程和函数,我们选择函数
设置参数,这里的参数是接收的参数,例如 count(id) 接收一个参数
下一步,设置返回类型
点击完成即可。会出现以下界面
现在开始在BEGIN ..END;;中间写逻辑,具体语法需要百度。
我这里主要是if...elseif..else的逻辑,代码如下:
保存--getMatchResult。如果语法有错误,保存会报错,根据提示信息去查找错误。
使用函数:
我这里为了方便,直接写了两个参数,结果跟预想一样。 第一个参数是主场分数,第二个参数是客场分数,3表示客场胜。
Mysql 创建函数
进入mysql shell,因为中间有很多分号,所以需要使用delimiter分界。该命令表示,把默认的分号执行改成其他符号执行。这里使用demiter修改分解符为// ,如果还是使用分号分界则报错了。使用//分界执行后,显示正常。
创建函数(注意使用//分界)
使用函数
分号结尾没效果,必须要用// ,除非退出mysql shell重新登录。返回结果是我们需要的,第2个参数为客场。3表示客场胜。
到此简单试用完成,临时查询很方便。
来自为知笔记(Wiz)
相关文章推荐
- MySQL学习8_mysqld与mysql命令区别
- wamp --mysql 控制台总是在Enterpasswd后闪退
- MySQL:MySQL日期数据类型、MySQL时间类型使用总结
- mysql查询当前日期的前一个月内的数据
- mysql 替换某个字段中的某个字符
- Mysql使用正则表达式-regexp
- 启动mysql错误ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)
- 启动mysql错误ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)
- mysql关于排除表中重复数据
- mysql数据库——源码安装
- Windows下MySQL5.7.10免安装配置
- Mysql 从零开始(五)函数之字符串函数
- 完成wamp安装后Mysql配置记录
- 【转】解决MySQL主从复制不一致的情况
- mysql存储过程详解
- 利用端口转发访问VirtualBox虚拟机中的MySQL
- mysql查询分组归类函数-group_concat,通常与group_by一起使用
- nodejs 安装mysql、socket.io 插件
- MySql Lock wait timeout exceeded
- 【20】MySQL数据库