您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關MySQL中有哪些條件判斷函數,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
【1】IF()
先看看其語法格式:IF(expr,v1,v2);
再看看其執行邏輯:若expr是TRUE(即:expr<>0andexpr<>NULL),則該函數返回值為v1,否則返回值為v2。
所以,我們得出結論是其返回的值是在函數的入參中指定。
接著我們來從簡單案例著手,由淺入深來探索其真正的價值。
IF(2019>2018,TRUE,FALES)執行報錯,我們可以得知函數中可以指定的值為MySQL保留詞;
從IF(2019>2018,TRUE,FALSE)返回結果為1而不是TRUE可以得知,MySQL對TRUE再做了一次運算,即視TRUE為1;
接著我們嘗試是否可以在expr封裝其他復雜邏輯(譬如函數)。
函數STRCMP('AEV','UCR')的計算結果為-1,即不等于0也不為NULL;
依據函數STRCMP('AEV','UCR')的返回值,IF()返回的結果是v1(即:YES)。
【2】IFNULL()
該函數則相對比較簡單,從它的語法格式IFNULL(v1,v2)可以看出它只需定義返回值不需定義判斷表達式,因為其函數名本身就是判斷的含義。
判斷兩個參數是否為NULL;
若兩個參數都不為空,則返回第一個參數值;
若第一個為空則返回第二個參數值;
兩個參數也是可以封裝更復雜的運算(譬如函數)。
【3】CASE
看語法格式我們會發現此類函數寫法上比較麻煩,但其表達的邏輯卻最貼近我們日常的思維習慣。
CASEexprWHENv1THENr1[WHENv2THENr2]...[WHENvnTHENrn]...[ELSEr(n+1)]END或CASEWHENv1THENr1[WHENv2THENr2]...[WHENvnTHENrn]...ELSEr(n+1)]END
用通俗的話來讀這個判斷函數的就是:在條件expr滿足條件v1就返回值r1,滿足條件v2就返回值r2……否則就返回一個指定的值r(n+1)。
【結論】兩種寫法的效果是一致的。
看完上述內容,你們對MySQL中有哪些條件判斷函數有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。