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

MySQL 字符串函數大全:40+ 函數分類詳解與實戰範例

     編輯:MySQL 資料庫相關知識

MySQL 字符串函數完整參考手冊 (40+ 函數)

MySQL 提供豐富的字符串處理函數,涵蓋大小寫轉換、截取、拼接、查找、替換、編碼、格式化等場景。本文按功能分類整理,附語法與範例,適合開發速查。

一、大小寫轉換

函數語法範例結果
LOWER / LCASELOWER(str)LOWER('MySQL')mysql
UPPER / UCASEUPPER(str)UPPER('mysql')MYSQL

二、長度與字節

函數語法說明
LENGTHLENGTH(str)字節長度
CHAR_LENGTH / CHARACTER_LENGTHCHAR_LENGTH(str)字符長度 (多字節計 1)
BIT_LENGTHBIT_LENGTH(str)位長度 = LENGTH * 8

三、拼接與重複

函數語法範例結果
CONCATCONCAT(str1, str2, ...)CONCAT('My', 'SQL')MySQL
CONCAT_WSCONCAT_WS(sep, str1, str2, ...)CONCAT_WS('-', '2023', '10', '15')2023-10-15
REPEATREPEAT(str, count)REPEAT('ab', 3)ababab

四、截取與子串

函數語法關鍵點
SUBSTRING / MIDSUBSTRING(str, pos [, len])pos 從 1 起;負數從末尾倒數
LEFTLEFT(str, len)左側 len 字符
RIGHTRIGHT(str, len)右側 len 字符
SUBSTRING_INDEXSUBSTRING_INDEX(str, delim, count)count>0 取左側;count<0 取右側

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

五、查找與定位

函數語法差異
LOCATE / POSITIONLOCATE(substr, str [, pos])參數順序:substr, str
INSTRINSTR(str, substr)參數順序:str, substr (與 LOCATE 相反)
FIND_IN_SETFIND_IN_SET(str, strlist)strlist 為逗號分隔集合,返回 1-based 索引

六、替換與插入

函數語法範例
REPLACEREPLACE(str, from_str, to_str)REPLACE('www.mysql.com', 'w', 'Ww') → WwWwWw.mysql.com
INSERTINSERT(str, pos, len, newstr)INSERT('Quadratic', 3, 4, 'What') → QuWhattic
REVERSEREVERSE(str)REVERSE('abc') → cba

七、填充與修剪

函數語法範例
LPADLPAD(str, len, padstr)LPAD('hi', 4, '??') → ??hi
RPADRPAD(str, len, padstr)RPAD('hi', 5, '?') → hi???
LTRIMLTRIM(str)去除左側空格
RTRIMRTRIM(str)去除右側空格
TRIMTRIM([BOTH|LEADING|TRAILING] [remstr] FROM str)TRIM(BOTH 'x' FROM 'xxxbarxxx') → bar

八、編碼與進制

函數語法範例
ASCIIASCII(str)ASCII('A') → 65
ORDORD(str)多字節字符編碼計算
CHARCHAR(N, ...)CHAR(77,121,83,81,76) → MySQL
HEX / UNHEXHEX(str) / UNHEX(hex_str)HEX('MySQL') → 4D7953514C
BIN / OCTBIN(N) / OCT(N)BIN(12) → 1100
CONVCONV(N, from_base, to_base)CONV('a', 16, 2) → 1010

九、格式化與聲音

函數語法範例
SPACESPACE(N)SPACE(6) → 6 個空格
QUOTEQUOTE(str)轉義並加引號,可用於 SQL 構建
SOUNDEXSOUNDEX(str)SOUNDEX('Hello') → H400
ELTELT(N, str1, str2, ...)ELT(2, 'a', 'b', 'c') → b
FIELDFIELD(str, str1, str2, ...)FIELD('b', 'a', 'b', 'c') → 2
MAKE_SETMAKE_SET(bits, str1, str2, ...)MAKE_SET(1|4, 'a', 'b', 'c') → a,c
EXPORT_SETEXPORT_SET(bits, on, off [, sep [, num]])EXPORT_SET(5, 'Y', 'N', ',', 4) → Y,N,Y,N

十、文件讀取


LOAD_FILE(file_name)  -- 讀取服務器文件內容,需 FILE 權限,小於 max_allowed_packet

十一、實戰技巧組合

  1. 去除首尾空格並統一大小寫:LOWER(TRIM(col))
  2. 提取域名:SUBSTRING_INDEX(SUBSTRING_INDEX(url, '//', -1), '/', 1)
  3. 手機號掩碼:CONCAT(LEFT(phone, 3), '****', RIGHT(phone, 4))
  4. CSV 匯出轉義:QUOTE(col) 自動處理引號、逗號、換行
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved