條件判斷函數(shù)也被稱為控制流程函數(shù),根據(jù)滿足的不同條件,執(zhí)行響應(yīng)的流程。
mysql中進行條件判斷的函數(shù)有if、ifunll和case等。
IF(expr,v1,v2)函數(shù)
IF(expr,v1,v2):如果表達式expr是TRUE(expr <> 0 and expr <> null),則返回值為V1;否則返回值為V2。
mysql> select if (1>2, 2, 3), if (1<2, 'yes', 'no');
+----------------+-----------------------+
| if (1>2, 2, 3) | if (1<2, 'yes', 'no') |
+----------------+-----------------------+
| 3 | yes |
+----------------+-----------------------+
1 row in set (0.00 sec)
mysql>小提示:
如果V1或者V2中只有一個明確是
null,則if()函數(shù)的結(jié)果類型為非null表達式的結(jié)果類型。
IFNULL(v1,v2)函數(shù)
ifnull(v1,v2):假如V1不為null,則ifnull()的返回值為v1;否則其返回值為v2。
ifnull()的返回值是數(shù)字或者字符串,具體情況取決于其所在的語境。
mysql> select ifnull(1, 2), ifnull(null, 'yunweijia'), ifnull(1/0, 'heihei');
+--------------+---------------------------+-----------------------+
| ifnull(1, 2) | ifnull(null, 'yunweijia') | ifnull(1/0, 'heihei') |
+--------------+---------------------------+-----------------------+
| 1 | yunweijia | heihei |
+--------------+---------------------------+-----------------------+
1 row in set (0.00 sec)
mysql>CASE函數(shù)
case expr when v1 then r1 [when v2 then 2]...[else rn+1]end:如果expr值等于某個vn,則返回對應(yīng)位置then后面的結(jié)果;如果與所有值都不相等,則返回else后面的rn+1。
mysql> select case 2 when 1 then 'one' when '2' then 'two' else 'more' end;
+--------------------------------------------------------------+
| case 2 when 1 then 'one' when '2' then 'two' else 'more' end |
+--------------------------------------------------------------+
| two |
+--------------------------------------------------------------+
1 row in set (0.00 sec)
mysql>
mysql> select case 5 when 1 then 'one' when '2' then 'two' else 'more' end;
+--------------------------------------------------------------+
| case 5 when 1 then 'one' when '2' then 'two' else 'more' end |
+--------------------------------------------------------------+
| more |
+--------------------------------------------------------------+
1 row in set (0.00 sec)
mysql>小提示:
可以按照
shell中的if語句來理解。一個
case表達式的默認返回值類型是任何返回值的相容集合類型,但具體情況視其所在語境而定。
至此,本文結(jié)束。?
更多內(nèi)容請轉(zhuǎn)至VX公眾號 “運維家” ,獲取最新文章。
------ “運維家”? ------
------ “運維家”? ------
------ “運維家”? ------
linux中斷異常,linuxuml建模,linux編譯多個源文件,linux怎么更新時間,linux中的分頁視頻教程,
linux怎么解壓gzip,linux解壓某個目錄,怎么關(guān)閉linux網(wǎng)關(guān),linux文件架構(gòu)圖,linux提高權(quán)限執(zhí)行,
linux文件用什么標(biāo)志,網(wǎng)絡(luò)安全linux加固,linux中查看郵件,linux修改背景顏色,linux環(huán)境下搭建網(wǎng)站。