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

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