聚合函式
| 函式 |
用途 |
| AVG |
計算欄位的平均值 |
| COUNT |
計算查詢結果的筆數 |
| MAX |
取出欄位中的最大值 |
| MIN |
取出欄位中的最小值 |
| SUM |
計算欄位的總計 |
字串函式
| 函式 |
用途 |
| CHAR_LENGTH |
取得字串的長度(以多字元字集方式) |
| LENGTH |
取得字串的長度(bytes) |
| CONCAT |
字串合併 |
| GROUP_CONCAT |
將GROUP BY結果中的某個欄位內容串成一個字串 |
| LEFT |
取出由左邊開始的指定長度的字串 |
| RIGHT |
取出由右邊開始的指定長度的字串 |
| SUBSTRING |
取出指定位置開始的指定長度的字串 |
日期/時間函式
| 函式 |
用途 |
| CURRENT_DATE |
取出當前的系統日期 |
| CURRENT_TIME |
取出當前的系統時間 |
| NOW |
取出當前的系統日期及時間 |
| DATEDIFF |
計算兩個日期間差距的天數 |
| TIMESTAMPDIFF |
計算兩個日期時間差距的單位,可選擇要返回的數值是時間還是日期 |
| YEAR |
取出日期時間格的資料中年的部份 |
| MONTH |
取出日期時間格的資料中月的部份 |
| DATE |
取出日期時間格的資料中日期的部份 |
| HOUR |
取出日期時間格的資料中小時的部份 |
| MINUTE |
取出日期時間格的資料中分鐘的部份 |
| SECOND |
取出日期時間格的資料中秒的部份 |
流程控制函式
| 函式 |
用途 |
| CASE |
類似switch case的用法 |
| IF |
和if else一樣的用法 |
| IFNULL |
判斷第一個參數是否為null,決定返回的值 |
CASE
case運算式有兩種用法分別是和switch..case一樣的根據一個結果來決定回傳值;另一個用法則是和if..elseif…else一樣,可以做多個條件的判斷並回傳不同的結果
1 2 3 4 5
| SELECT CASE `gender` WHEN 1 THEN '男' WHEN 2 THEN '女' ELSE '多元性別' END
|
1 2 3 4 5
| SELECT CASE WHEN `salary` <= 30000 THEN '年終一個月' WHEN `salary` > 30000 AND `salary` <=45000 THEN '年終兩個月' WHEN `salary > 45000 THEN '年終三個月' END
|
IF
1
| SELECT IF(`gender`=1,'男','女')
|
IFNULL
1
| SELECT IFNULL(`score`,0)
|