控制流函式
mysql提供了4個函式是用來進行條件操作的。這些函式實現了sql的條件邏輯,允許開發者將一些應用程式業務邏輯轉換到
資料庫後台。
case where[test1] then[result1] ... else[de****t] end;//如果testn為真,則返回resultn,否則返回default
case[test] where[val1] then[result1]...else[default] end;//如果test和valn為真,則返回resultn,否則返回default
if(test,t,f);//如果test為真,返回t,否則返回f
ifnull(arg1,arg2);//如果arg1不是空,返回arg1,否則返回arg2
nullif(arg1,arg2);//如果arg1=arg2返回null,否則返回arg1
這些函式的第乙個是ifnull()函式,它有兩個引數,並且對第乙個引數進行判斷。如果第二個引數不是null,
函式就會向呼叫者返回第乙個引數,如果是null,返回第二個引數。
select ifnull(1,2),ifnull(null,10),ifnull(4*null,'false');//結果為1,10,false
nullif()函式將會檢驗提供的兩個引數是否相等,如果相等,則返回null,不相等,返回第乙個引數。
if()函式有三個引數,第乙個是要被判斷的表示式,如果表示式為真,if()函式會返回第二個引數,為假,返回第三個引數。
if()函式在只有兩種結果時才適合使用
mysql流控制 mysql 控制流函式
ifnull expr1,expr2 如果 expr1 為非 null 的,ifnull 返回 expr1,否則返回 expr2。ifnull 返回乙個數字或字串值 mysql select ifnull 1,0 1 mysql select ifnull null,10 10 如果 expr1 e...
mysql 高階 mysql高階知識
一.儲存引擎 引擎 指的是乙個系統的核心部分 引擎有不同分類是為了適應不同的使用場景 檢視mysql支援所有引擎 show engines mrg myisam 是一堆myisam表的集合 用於做水平分表,如果乙個表中資料量太大 將導致效率降低 水平分表就是把整個大表拆成不同的小表,每一次查詢 會判...
MySQL高階高階
1 mysql的開窗函式 row number 從 1 開始,按照順序生成組內的記錄編號 rank 從 1 開始,按照順序,相同會重複,名次會留下空的位置,生成組內的記錄編號 dense rank 從 1 開始,按照順序生成組內的記錄編號,相同會重複,名次不會留下空的位置 開窗函式區別如下圖所示 f...