mysql中的if條件語句用法

IF(expr1,v1,v2)

如果 expr1 是TRUE (expr1 <> 0 and expr1 <> NULL),則 IF()的返回值為v1; 否則返回值則為 v2。IF() 的返回值為數字值或字串值,具體情況視其所在語境而定。

mysql> SELECT IF(1>2,2,3); -> 3mysql> SELECT IF(1<2,‘yes ’,‘no’); -> ‘yes’mysql> SELECT IF(STRCMP(‘test’,‘test1’),‘no’,‘yes’); -> ‘no’

如果v1 或v2中只有一個明確是 NULL,則IF() 函式的結果型別 為非NULL表示式的結果型別。

expr1 作為一個整數值進行計算,就是說,假如你正在驗證浮點值或字串值,那麼應該使用比較運算進行檢驗。

mysql> SELECT IF(0。1,1,0); -> 0mysql> SELECT IF(0。1<>0,1,0); -> 1

在所示的第一個例子中,IF(0。1)的返回值為0,原因是 0。1 被轉化為整數值,從而引起一個對 IF(0)的檢驗。這或許不是你想要的情況。在第二個例子中,比較檢驗了原始浮點值,目的是為了瞭解是否其為非零值。比較結果使用整數。

IF() (這一點在其被儲存到臨時表時很重要 ) 的預設返回值型別按照以下方式計算:

v1 或v2 返回值為一個字串。——-返回值是字串

v1 或v2返回值為一個浮點值。——-返回值是浮點值

v1 或v2返回值為一個整數。 ——-返回值是整數

假如v1 或v2都是字串,且其中任何一個字串區分大小寫,則返回結果是區分大小寫。

IFNULL(expr1,expr2)

如果expr1不是NULL,IFNULL()返回expr1,否則它返回expr2。IFNULL()返回一個數字或字串值;

mysql> SELECT IFNULL(2,3); -> 2

CASE expr WHEN v1 THEN v2 [WHEN vr1 THEN vr2 ] ELSE vs1 END

CASE <表示式> WHEN <值1> THEN <操作> WHEN <值2> THEN <操作> 。。。 ELSE <操作>END CASE;

mysql> SELECT CASE WEEKDAY(NOW()) WHEN 0 THEN ‘星期一’ WHEN 1 THEN ‘星期二’ WHEN2 THEN ‘星期三’ WHEN 3 THEN ‘星期四’ WHEN 4 THEN ‘星期五’ WHEN 5 THEN ‘星期六’ELSE ‘星期天’ END AS COLUMN1,NOW(),WEEKDAY(NOW()),DAYNAME(NOW());+————-+——————————-+————————+————————+| COLUMN1 | NOW() | WEEKDAY(NOW()) | DAYNAME(NOW()) |+————-+——————————-+————————+————————+| 星期四 | 2019-02-28 13:45:43 | 3 | Thursday |+————-+——————————-+————————+————————+1 row in set, 7 warnings (0。00 sec)