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