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

MySQL 字符串截取函數完整指南:LEFT、RIGHT、SUBSTRING、SUBSTRING_INDEX

     編輯:MySQL 資料庫相關知識

四大核心截取函數對比

函數語法用途示例結果
LEFTLEFT(str, len)從左側截取指定長度LEFT('abcdef', 3) → 'abc'
RIGHTRIGHT(str, len)從右側截取指定長度RIGHT('abcdef', 3) → 'def'
SUBSTRINGSUBSTRING(str, pos[, len])從任意位置截取,支援負數SUBSTRING('abcdef', 2, 3) → 'bcd'
SUBSTRING('abcdef', -3) → 'def'
SUBSTRING_INDEXSUBSTRING_INDEX(str, delim, count)按分隔符截取,count>0 取左側,<0 取右側SUBSTRING_INDEX('a.b.c', '.', 2) → 'a.b'
SUBSTRING_INDEX('a.b.c', '.', -1) → 'c'

詳細用法說明

1. LEFT(str, length)

返回字符串最左側 length 個字符。length > 字符串長度 時返回整串。

2. RIGHT(str, length)

返回字符串最右側 length 個字符。行為同 LEFT 方向相反。

3. SUBSTRING(str, pos[, len])

  • pos > 0:從左往右數(1 起始)
  • pos < 0:從右往左數(-1 為最後一字符)
  • 省略 len 表示截取到字符串末尾

4. SUBSTRING_INDEX(str, delim, count)

極其實用於解析路徑、域名、CSV 等結構化字符串:

-- 獲取域名主體
SELECT SUBSTRING_INDEX('www.example.com', '.', -2); -- 'example.com'

-- 獲取文件名(去擴展名)
SELECT SUBSTRING_INDEX('/path/to/file.txt', '.', 1); -- '/path/to/file'

-- 解析 CSV 第 3 列
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('a,b,c,d', ',', 3), ',', -1); -- 'c'

實戰組合技

-- 截取郵箱用戶名部分
SELECT SUBSTRING_INDEX(email, '@', 1) FROM users;

-- 截取 URL 最後一級路徑
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(url, '/', -1), '?', 1) FROM logs;

-- 固定長度截取並補全
SELECT CONCAT(LEFT(desc, 50), '...') FROM articles;

版本兼容性提示

所有函數 MySQL 4.0+ 全版本支援。SUBSTRING 別名 SUBSTR、MID 通用。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved