MySQL 控制流函式
以下內容基於MySQL 5.6及更高,大部分函式5.5也基本適用,更低版本請參考對應版本手冊,其內容整理自官方。
mysql常用函式被分為五類,分別為:
①Control Flow:基於一個表示式的結果集選擇不同的值(控制流函式);
②String:字串函式;
http://blog.itpub.net/29773961/viewspace-1813545/
③Date and time:日期和時間;
http://blog.itpub.net/29773961/viewspace-1808967/
④Numeric:數字函式;
http://blog.itpub.net/29773961/viewspace-1813556/
⑤Aggregate:基於一列的多個值返回單一值(聚合函式);
http://blog.itpub.net/29773961/viewspace-1813589/
【Control Flow】:
IF():基於表示式的結果集選擇兩個不同的值
另一個有意思的比較:
CASE:
IFNULL(expr1,expr2):如果expr1為null,返回expr2,否則返回expr1。
結果集為什麼為456.0000,1.0000是因為mysql中預設的除法將保留4位小數,比如:
NULLIF(expr1,expr2):如果expr1=expr2,返回NULL,反之返回expr1。
mysql常用函式被分為五類,分別為:
①Control Flow:基於一個表示式的結果集選擇不同的值(控制流函式);
②String:字串函式;
http://blog.itpub.net/29773961/viewspace-1813545/
③Date and time:日期和時間;
http://blog.itpub.net/29773961/viewspace-1808967/
④Numeric:數字函式;
http://blog.itpub.net/29773961/viewspace-1813556/
⑤Aggregate:基於一列的多個值返回單一值(聚合函式);
http://blog.itpub.net/29773961/viewspace-1813589/
【Control Flow】:
IF():基於表示式的結果集選擇兩個不同的值
-
mysql> SELECT IF(2 > -3, 'YES', 'NO');
-
+-------------------------+
-
| IF(2 > -3, 'YES', 'NO') |
-
+-------------------------+
-
| YES |
-
+-------------------------+
- 1 row in set (0.00 sec)
-
mysql> SELECT IF(STRCMP('test','test1'),'no','yes') RESULT;
-
+--------+
-
| RESULT |
-
+--------+
-
| no |
-
+--------+
- 1 row in set (0.00 sec)
CASE:
-
mysql> SET @a=1;
-
1 row in set (0.00 sec)
-
-
mysql> SELECT CASE @a WHEN 1 THEN 'one' WHEN 2 THEN 'two' ELSE 'more' END RESULT;
-
+--------+
-
| RESULT |
-
+--------+
-
| one |
-
+--------+
-
1 row in set (0.00 sec)
-
- mysql> SELECT CASE WHEN 1>0 THEN 'true' ELSE 'false' END RESULT;
-
+--------+
-
| RESULT |
-
+--------+
-
| true |
-
+--------+
-
1 row in set (0.00 sec)
-
-
-
mysql> SELECT CASE '1' WHEN 'a' THEN 'true' WHEN 'b' THEN 'true' END RESULT; -- 如果沒有else處理,則返回NULL
-
+--------+
-
| RESULT |
-
+--------+
-
| NULL |
-
+--------+
- 1 row in set (0.00 sec)
IFNULL(expr1,expr2):如果expr1為null,返回expr2,否則返回expr1。
-
mysql> SELECT IFNULL(NULL,'hi') test1,
-
-> IFNULL(NULL,234) test2,
-
-> IFNULL(2/0,456) test3,
-
-> IFNULL(3/3,123) test4;
-
+-------+-------+----------+--------+
-
| test1 | test2 | test3 | test4 |
-
+-------+-------+----------+--------+
-
| hi | 234 | 456.0000 | 1.0000 |
-
+-------+-------+----------+--------+
- 1 row in set (0.00 sec)
-
mysql> select 3/3;
-
+--------+
-
| 3/3 |
-
+--------+
-
| 1.0000 |
-
+--------+
- 1 row in set (0.00 sec)
NULLIF(expr1,expr2):如果expr1=expr2,返回NULL,反之返回expr1。
-
mysql> SELECT NULLIF(-1,3) RESULT, NULLIF('test','test') RESULT;
-
+--------+--------+
-
| RESULT | RESULT |
-
+--------+--------+
-
| -1 | NULL |
-
+--------+--------+
- 1 row in set (0.00 sec)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29773961/viewspace-1813557/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 《MySQL 入門教程》第 13 篇 CASE 表示式與控制流函式MySql函式
- MySQL 流程控制函式MySql函式
- 函式節流函式
- 非常有用的MySQL控制流程函式薦MySql函式
- 函式節流與函式防抖函式
- 函式防抖和函式節流函式
- 區分函式防抖&函式節流函式
- JS函式節流和函式防抖JS函式
- MySQL 函式MySql函式
- MySQL函式MySql函式
- MySQL(四)日期函式 NULL函式 字串函式MySql函式Null字串
- 控制make的函式函式
- Mysql 常用函式(15)- upper 函式MySql函式
- 【Mysql 學習】日期函式函式MySql函式
- 深入理解函式節流與函式防抖函式
- 淺談js函式節流和函式防抖JS函式
- 什麼是節流函式以及防抖函式?函式
- 函式節流、函式防抖實現原理分析函式
- 高階函式技巧-函式防抖與節流函式
- MySQL 常用函式MySql函式
- MySQL 常用函式。MySql函式
- MySQL函式(一)MySql函式
- MySQL常用函式MySql函式
- mysql拼接函式MySql函式
- mysql函式大全MySql函式
- 14 mysql 函式MySql函式
- 函式防抖和節流函式
- 函式節流和防抖函式
- JS函式節流,去抖JS函式
- 節流函式怎麼寫?函式
- 老生常談-節流函式函式
- 淺談javascript函式節流JavaScript函式
- MySQL函式大全(字串函式,數學函式,日期函式,系統級函式,聚合函式)MySql函式字串
- MySQL函式學習(一)-----字串函式MySql函式字串
- MySQL函式-條件判斷函式MySql函式
- 【js】什麼是函式節流與函式去抖JS函式
- 一圖秒懂函式防抖和函式節流函式
- 輕鬆理解JS函式節流和函式防抖JS函式