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

MySQL 字串函數完整參考指南

     編輯:MySQL 資料庫相關知識

字串函數分類速覽

類別代表函數
大小寫轉換LOWER, UPPER, LCASE, UCASE
子串擷取SUBSTRING, LEFT, RIGHT, MID, SUBSTRING_INDEX
查找定位LOCATE, INSTR, POSITION, FIND_IN_SET
替換修改REPLACE, INSERT, REVERSE
去除空白TRIM, LTRIM, RTRIM
長度計算LENGTH, CHAR_LENGTH, BIT_LENGTH, OCTET_LENGTH
拼接合併CONCAT, CONCAT_WS
格式化FORMAT, HEX, UNHEX, QUOTE
編碼轉換ASCII, ORD, CHAR, CONV, BIN, OCT
壓縮解壓COMPRESS, UNCOMPRESS, UNCOMPRESSED_LENGTH
音演算法SOUNDEX, SOUNDS LIKE
集合操作ELT, FIELD, MAKE_SET, EXPORT_SET
其他REPEAT, SPACE, LOAD_FILE

高頻函數詳細說明與範例

CONCAT / CONCAT_WS

SELECT CONCAT('My', 'S', 'QL');           -- 'MySQL'
SELECT CONCAT('My', NULL, 'QL');          -- NULL (任一參數為 NULL 結果為 NULL)
SELECT CONCAT_WS(',', 'A', 'B', 'C');     -- 'A,B,C'
SELECT CONCAT_WS(',', 'A', NULL, 'C');    -- 'A,C' (忽略 NULL)

SUBSTRING 靈活擷取

SELECT SUBSTRING('Quadratically', 5);        -- 'ratically'
SELECT SUBSTRING('Quadratically', 5, 6);     -- 'ratica'
SELECT SUBSTRING('Sakila', -3);              -- 'ila' (負數從右計)
SELECT SUBSTRING('Sakila', -5, 3);           -- 'aki'

REPLACE 全域替換

SELECT REPLACE('www.mysql.com', 'w', 'Ww');  -- 'WwWwWw.mysql.com'

TRIM 多模式去空白

SELECT TRIM('  bar  ');                    -- 'bar'
SELECT TRIM(LEADING 'x' FROM 'xxxbarxxx');  -- 'barxxx'
SELECT TRIM(BOTH 'x' FROM 'xxxbarxxx');     -- 'bar'
SELECT TRIM(TRAILING 'xyz' FROM 'barxxyz'); -- 'barx'

SUBSTRING_INDEX 分隔符擷取

SELECT SUBSTRING_INDEX('www.mysql.com', '.', 2);   -- 'www.mysql'
SELECT SUBSTRING_INDEX('www.mysql.com', '.', -2);  -- 'mysql.com'

FORMAT 數字格式化

SELECT FORMAT(1234567.89, 2);  -- '1,234,567.89'

HEX / UNHEX 十六進制互轉

SELECT HEX('abc');        -- '616263'
SELECT UNHEX('616263');    -- 'abc'

COMPRESS / UNCOMPRESS 壓縮 (需 zlib 支援)

SELECT LENGTH(COMPRESS(REPEAT('a', 1000)));  -- 21
SELECT UNCOMPRESS(COMPRESS('any string'));    -- 'any string'

重要注意事項

  • 位置參數從 1 開始,非 0。
  • 多字節字元下 CHAR_LENGTH 計字元數,LENGTH 計位元組數。
  • CONCAT 遇 NULL 則全為 NULL,建議搭配 IFNULL 或 COALESCE。
  • LOAD_FILE 需 FILE 權限且檔案在 Server 端,受 max_allowed_packet 限制。
  • 音演算法 SOUNDEX 僅適用英文,中文需用全文檢索或第三方擴展。

效能建議

  1. 避免在 WHERE 條件對欄位使用函數,導致索引失效。
  2. 大量字串拼接改用應用層處理或 GROUP_CONCAT。
  3. 定長字串操作優於變長,減少記憶體碎片。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved