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

MySQL 字串函數完整大全:51 個函數分類、參數、範例與模式匹配

     編輯:MySQL 資料庫相關知識

MySQL 提供豐富字串函數。本文彙整 51 個函數分類速查:ASCII/位元/長度、連接/插入/替換、大小寫/修剪/反轉、比較/搜尋/子字串、編碼/壓縮/十六進位、模式匹配、字串連接差異。

快速分類索引

類別代表函數
資訊取得ASCII, BIT_LENGTH, CHAR_LENGTH, LENGTH, OCTET_LENGTH
連接合併CONCAT, CONCAT_WS
插入替換INSERT, REPLACE, REPLACE
大小寫轉換LOWER/LCASE, UPPER/UCASE
修剪空白LTRIM, RTRIM, TRIM
子字串擷取LEFT, RIGHT, MID, SUBSTRING, SUBSTRING_INDEX
搜尋定位LOCATE, POSITION, INSTR, FIND_IN_SET
比較STRCMP
反轉/重複REVERSE, REPEAT, SPACE
填充LPAD, RPAD
編碼轉換HEX, UNHEX, CONV, BIN, OCT
壓縮COMPRESS, UNCOMPRESS, UNCOMPRESSED_LENGTH
SoundexSOUNDEX
模式匹配LIKE (% _), REGEXP

高頻函數詳細說明與範例

連接字串

CONCAT('My', '_', '2001')        -- 'My_2001'
CONCAT_WS(',', 'a', 'b', 'c')    -- 'a,b,c' (第一參數為分隔符)
-- ⚠️ SQL Server 用 +,MySQL 用 CONCAT

子字串擷取

LEFT('abcdef', 3)        -- 'abc'
RIGHT('abcdef', 3)       -- 'def'
SUBSTRING('abcdef', 2, 3) -- 'bcd' (位置從 1 開始)
SUBSTRING_INDEX('a,b,c', ',', 2) -- 'a,b' (第 2 個分隔符前)
SUBSTRING_INDEX('a,b,c', ',', -1) -- 'c' (最後一段)

搜尋定位

LOCATE('b', 'abc')       -- 2
INSTR('abc', 'b')        -- 2 (參數順序相反)
FIND_IN_SET('b', 'a,b,c') -- 2

大小寫/修剪

LOWER('ABC')   -- 'abc'
UPPER('abc')   -- 'ABC'
TRIM('  abc ') -- 'abc'
LTRIM('  abc') -- 'abc'
RTRIM('abc  ') -- 'abc'

替換/插入

REPLACE('abcabc', 'bc', 'XY')  -- 'aXYaXY'
INSERT('abcdef', 2, 3, 'XYZ')  -- 'aXYZef' (位置2,長度3替換)

填充

LPAD('5', 3, '0')  -- '005'
RPAD('5', 3, '0')  -- '500'

編碼/壓縮

HEX('abc')         -- '616263'
UNHEX('616263')    -- 'abc'
COMPRESS('long text') -- 二進位壓縮資料
UNCOMPRESS(comp)   -- 解壓縮

模式匹配

col LIKE 'a%'      -- 以 a 開頭
col LIKE '%a%'     -- 含 a
col LIKE '_a'      -- 第二字元為 a
col REGEXP '^[0-9]+$' -- 純數字

字串連接跨資料庫差異

資料庫連接運算子/函數
MySQLCONCAT()
SQL Server+
Oracle||
PostgreSQL||

實務提醒

  • ✅ 字串函數引數為二進位字串時,回傳也為二進位(影響比較)
  • ✅ 數字隱含轉字串:SELECT CONCAT(2, ' test') → '2 test'
  • ✅ 明確轉字串:CAST(num AS CHAR) 或 CONCAT(num, '')
  • ⚠️ TRIM 預設只去空白,需指定字元:TRIM(BOTH 'x' FROM 'xxabcxx')
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved