Mysql的函數使用方法


今天有點臨時需求要計算一張表的結果,不想寫代碼,想到了mysql的自定義函數。碰到了很多問題,為了方便一下使用,在此記錄一下。

需求:一張表中,有比分,需要查詢出比賽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表示客場勝。
    

到此簡單試用完成,臨時查詢很方便。



    





免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM