Mysql的函数使用方法

时间:2022-06-14 05:18:41

今天有点临时需求要计算一张表的结果,不想写代码,想到了mysql的自定义函数。碰到了很多问题,为了方便一下使用,在此记录一下。


需求:一张表中,有比分,需要查询出比赛id和比赛结果。
分析:
    单表查询没啥的,困难就困难在怎么判断比分之后返回想要的结果。
    这里我把比赛结果分别定义代号,1主场胜、2平局、3客场胜
    函数逻辑:
           接收两个参数,判断参数的大小,分别返回结果。

实现:

Navicat操作:

            navicat for mysql 工具内--创建函数
        Mysql的函数使用方法
    
    这里分别是存储过程和函数,我们选择函数
    Mysql的函数使用方法

    设置参数,这里的参数是接收的参数,例如 count(id) 接收一个参数
    Mysql的函数使用方法

    下一步,设置返回类型
    Mysql的函数使用方法
    点击完成即可。会出现以下界面
    Mysql的函数使用方法
    
    现在开始在BEGIN ..END;;中间写逻辑,具体语法需要百度。

    我这里主要是if...elseif..else的逻辑,代码如下:
    Mysql的函数使用方法

    保存--getMatchResult。如果语法有错误,保存会报错,根据提示信息去查找错误。
    Mysql的函数使用方法

    使用函数:
    我这里为了方便,直接写了两个参数,结果跟预想一样。  第一个参数是主场分数,第二个参数是客场分数,3表示客场胜。
    Mysql的函数使用方法
    Mysql的函数使用方法

Mysql 创建函数

    进入mysql shell,因为中间有很多分号,所以需要使用delimiter分界。该命令表示,把默认的分号执行改成其他符号执行。
    
    Mysql的函数使用方法
    这里使用demiter修改分解符为// ,如果还是使用分号分界则报错了。使用//分界执行后,显示正常。

    创建函数(注意使用//分界)
    Mysql的函数使用方法
    
    使用函数
    分号结尾没效果,必须要用// ,除非退出mysql shell重新登录。返回结果是我们需要的,第2个参数为客场。3表示客场胜。
    Mysql的函数使用方法

到此简单试用完成,临时查询很方便。