首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 函數大全:SELECT/WHERE 子句中常用運算子、字串、數學、日期時間與流程控制函數完整參考

     編輯:MySQL 資料庫相關知識

運算子與比較函數

比較運算子

  • =, <=> (NULL-safe), <>, !=, <, <=, >, >=
  • IS NULL / IS NOT NULL
  • BETWEEN ... AND ...、IN (...)、NOT IN (...)
  • LIKE(% 多字元、_ 單字元)、REGEXP/RLIKE 正則比對
  • STRCMP(expr1, expr2):字串比較,相等回 0,小於回 -1,大於回 1

邏輯運算子

  • NOT, !、AND, &&、OR, ||、XOR
  • 回傳值:1 (TRUE)、0 (FALSE)、NULL

流程控制函數

函數說明範例
IFNULL(expr1, expr2)expr1 非 NULL 回 expr1,否則回 expr2IFNULL(NULL, 'N/A') → 'N/A'
NULLIF(expr1, expr2)相等回 NULL,否則回 expr1NULLIF(5,5) → NULL
IF(expr1, expr2, expr3)expr1 為真回 expr2,否則 expr3IF(score>60,'Pass','Fail')
CASE WHEN ... THEN ... ELSE ... END多條件分支見下方範例
SELECT CASE
    WHEN score >= 90 THEN 'A'
    WHEN score >= 80 THEN 'B'
    ELSE 'C'
END AS grade FROM students;

字串函數精選(50+)

常用操作

  • CONCAT(str1, str2, ...)、CONCAT_WS(sep, ...) 連接
  • LENGTH() (位元組)、CHAR_LENGTH() (字元數)
  • SUBSTRING(str, pos, len)、LEFT/RIGHT、MID
  • TRIM([BOTH|LEADING|TRAILING] remstr FROM str) 去除前後字元
  • REPLACE(str, from, to) 替換
  • LOCATE(substr, str[, pos])、INSTR(str, substr) 定位
  • UPPER/LOWER、UCASE/LCASE 大小寫轉換
  • REVERSE、REPEAT、SPACE
  • SOUNDEX 諧音比對
  • QUOTE(str) SQL 轉義引用

數學函數精選

  • 四則運算:+, -, *, /, DIV (整除)、MOD/% (取餘)
  • 絕對值 ABS()、正負號 SIGN()
  • 捨入:ROUND(X[,D])、FLOOR()、CEILING()、TRUNCATE(X,D)
  • 冪與根:POW(X,Y)、SQRT(X)、EXP(X)
  • 對數:LOG(X)、LOG10(X)、LOG2(X)、LN(X)
  • 三角函數:SIN/COS/TAN、ASIN/ACOS/ATAN、COT、PI()
  • 角度轉換:RADIANS()、DEGREES()
  • 隨機數:RAND([seed])
  • 極值:LEAST()、GREATEST()

日期時間函數精選

函數說明範例
NOW() / SYSDATE()目前日期時間2024-01-15 14:30:00
CURDATE() / CURTIME()目前日期/時間2024-01-15 / 14:30:00
DATE_ADD(d, INTERVAL expr unit)日期加減DATE_ADD(NOW(), INTERVAL 1 DAY)
DATEDIFF(d1, d2)天數差DATEDIFF('2024-01-15','2024-01-01') → 14
DATE_FORMAT(d, fmt)格式化輸出DATE_FORMAT(NOW(), '%Y-%m-%d')
STR_TO_DATE(str, fmt)字串轉日期STR_TO_DATE('15/01/2024','%d/%m/%Y')
DAYOFWEEK/WEEKDAY/MONTH/QUARTER/YEAR擷取日期部份MONTH('2024-01-15') → 1
LAST_DAY(d)該月最後一天LAST_DAY('2024-02-10') → 2024-02-29
UNIX_TIMESTAMP([d])轉 Unix 時間戳UNIX_TIMESTAMP() → 1705312200
FROM_UNIXTIME(ts[, fmt])時間戳轉日期FROM_UNIXTIME(1705312200)

加密與資訊函數

  • MD5(str)、SHA1(str)、SHA2(str, 256/512)、PASSWORD(str) (內部用)
  • VERSION()、CONNECTION_ID()、DATABASE()、USER()、LAST_INSERT_ID()
  • BENCHMARK(count, expr) 效能測試
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved