最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL?字符串截取函數(shù)及用法詳解

 更新時間:2025年05月20日 14:34:40   作者:XMYX-0  
在MySQL中,字符串截取是常見的操作,主要用于從字符串中提取特定部分,MySQL?提供了多種函數(shù)來實現(xiàn)這一功能,包括?LEFT()、RIGHT()、SUBSTRING()、MID()、SUBSTR()?和?SUBSTRING_INDEX()?等,本文將詳細介紹這些函數(shù)的用法,并通過示例進行說明,需要的朋友可以參考下

MySQL 字符串截取函數(shù)詳解

在 MySQL 中,字符串截取是常見的操作,主要用于從字符串中提取特定部分。MySQL 提供了多種函數(shù)來實現(xiàn)這一功能,包括 LEFT()、RIGHT()、SUBSTRING()MID()、SUBSTR()SUBSTRING_INDEX() 等。本文將詳細介紹這些函數(shù)的用法,并通過示例進行說明。

LEFT(str, length):從左側截取指定長度的字符

功能:從字符串 str 的左側開始,截取 length 個字符。

語法

LEFT(str, length)

示例

SELECT LEFT('sqlstudy.com', 3);

結果

+-------------------------+
| LEFT('sqlstudy.com', 3) |
+-------------------------+
| sql |
+-------------------------+

解釋:從 'sqlstudy.com' 的左側開始,截取 3 個字符,結果為 'sql'。

RIGHT(str, length):從右側截取指定長度的字符

功能:從字符串 str 的右側開始,截取 length 個字符。

語法

RIGHT(str, length)

示例

SELECT RIGHT('sqlstudy.com', 3);

結果

+--------------------------+
| RIGHT('sqlstudy.com', 3) |
+--------------------------+
| com |
+--------------------------+

解釋:從 'sqlstudy.com' 的右側開始,截取 3 個字符,結果為 'com'

SUBSTRING(str, pos) 或 SUBSTRING(str, pos, len):從指定位置開始截取

功能:從字符串 str 的第 pos 個字符開始,截取 len 個字符。pos 可以是正數(shù)或負數(shù),正數(shù)表示從左側開始,負數(shù)表示從右側開始。

語法

SUBSTRING(str, pos)
SUBSTRING(str, pos, len)

示例

-- 從第 4 個字符開始,直到結束
SELECT SUBSTRING('sqlstudy.com', 4);
-- 從第 4 個字符開始,截取 2 個字符
SELECT SUBSTRING('sqlstudy.com', 4, 2);
-- 從倒數(shù)第 4 個字符開始,直到結束
SELECT SUBSTRING('sqlstudy.com', -4);
-- 從倒數(shù)第 4 個字符開始,截取 2 個字符
SELECT SUBSTRING('sqlstudy.com', -4, 2);

結果

+------------------------------+
| SUBSTRING('sqlstudy.com', 4) |
+------------------------------+
| study.com |
+------------------------------+

+---------------------------------+
| SUBSTRING('sqlstudy.com', 4, 2) |
+---------------------------------+
| st |
+---------------------------------+

+-------------------------------+
| SUBSTRING('sqlstudy.com', -4) |
+-------------------------------+
| .com |
+-------------------------------+

+----------------------------------+
| SUBSTRING('sqlstudy.com', -4, 2) |
+----------------------------------+
| .c |
+----------------------------------+

解釋

  • SUBSTRING('sqlstudy.com', 4):從第 4 個字符開始,直到字符串結束,結果為 'study.com'。
  • SUBSTRING('sqlstudy.com', 4, 2):從第 4 個字符開始,截取 2 個字符,結果為 'st'。
  • SUBSTRING('sqlstudy.com', -4):從倒數(shù)第 4 個字符開始,直到字符串結束,結果為 '.com'
  • SUBSTRING('sqlstudy.com', -4, 2):從倒數(shù)第 4 個字符開始,截取 2 個字符,結果為 '.c'。

注意

len 必須為非負整數(shù)。若省略 len,則默認截取到字符串末尾。

pos 超出字符串長度或為 0,返回空字符串。例如:

SELECT SUBSTRING('abc', 0, 1);   -- 結果:空字符串
SELECT SUBSTRING('abc', 5, 1);   -- 結果:空字符串

SUBSTRING_INDEX(str, delim, count):根據(jù)分隔符截取字符串

功能:根據(jù)分隔符 delim,從字符串 str 中截取出第 count 次出現(xiàn)的分隔符前或后的子字符串。count 為正數(shù)時,從左側開始計數(shù);為負數(shù)時,從右側開始計數(shù)。

語法

SUBSTRING_INDEX(str, delim, count)

示例

-- 截取第二個 '.' 之前的所有字符
SELECT SUBSTRING_INDEX('www.sqlstudy.com.cn', '.', 2);
-- 截取倒數(shù)第二個 '.' 之后的所有字符
SELECT SUBSTRING_INDEX('www.sqlstudy.com.cn', '.', -2);
-- 如果分隔符不存在,返回整個字符串
SELECT SUBSTRING_INDEX('www.sqlstudy.com.cn', '.coc', 1);

結果

+------------------------------------------------+
| SUBSTRING_INDEX('www.sqlstudy.com.cn', '.', 2) |
+------------------------------------------------+
| www.sqlstudy |
+------------------------------------------------+

+-------------------------------------------------+
| SUBSTRING_INDEX('www.sqlstudy.com.cn', '.', -2) |
+-------------------------------------------------+
| com.cn |
+-------------------------------------------------+

+---------------------------------------------------+
| SUBSTRING_INDEX('www.sqlstudy.com.cn', '.coc', 1) |
+---------------------------------------------------+
| www.sqlstudy.com.cn |
+---------------------------------------------------+

解釋

  • SUBSTRING_INDEX('www.sqlstudy.com.cn', '.', 2):返回第 2 次出現(xiàn)的 . 之前的所有字符,結果為 'www.sqlstudy'。
  • SUBSTRING_INDEX('www.sqlstudy.com.cn', '.', -2):返回倒數(shù)第 2 次出現(xiàn)的 . 之后的所有字符,結果為 'com.cn'。
  • SUBSTRING_INDEX('www.sqlstudy.com.cn', '.coc', 1):由于 .coc 不存在于字符串中,返回整個字符串 'www.sqlstudy.com.cn'。

注意

count 超過分隔符實際出現(xiàn)的次數(shù),返回整個字符串。例如:

SELECT SUBSTRING_INDEX('a.b.c.d', '.', 5);  -- 結果:'a.b.c.d'

MID(str, pos, len) 或 SUBSTR(str, pos, len):與 SUBSTRING 等價

功能:與 SUBSTRING 函數(shù)功能相同,用于從指定位置開始截取指定長度的子字符串。

語法

MID(str, pos, len)
SUBSTR(str, pos, len)

示例

-- 從第 4 個字符開始,截取 2 個字符
SELECT MID('sqlstudy.com', 4, 2);
-- 從倒數(shù)第 4 個字符開始,截取 2 個字符
SELECT SUBSTR('sqlstudy.com', -4, 2);

結果

+----------------------------------+
| MID('sqlstudy.com', 4, 2) |
+----------------------------------+
| st |
+----------------------------------+

+-----------------------------------+
| SUBSTR('sqlstudy.com', -4, 2) |
+-----------------------------------+
| .c |
+-----------------------------------+

解釋

  • MID('sqlstudy.com', 4, 2)SUBSTRING('sqlstudy.com', 4, 2) 結果相同,均為 'st'
  • SUBSTR('sqlstudy.com', -4, 2)SUBSTRING('sqlstudy.com', -4, 2) 結果相同,均為 '.c'

多字節(jié)字符處理

MySQL 的字符串截取函數(shù)默認按字符(而非字節(jié))處理,適用于多字節(jié)字符集(如 UTF-8)。例如:

SELECT LEFT('中文測試', 2);  -- 結果:'中文'
SELECT SUBSTRING('數(shù)據(jù)庫', 2, 2);  -- 結果:'據(jù)庫'

實際應用場景

場景 1:提取郵箱的域名

SELECT 
  email,
  SUBSTRING_INDEX(email, '@', -1) AS domain
FROM users;

結果

+-------------------+-------------+
| email | domain |
+-------------------+-------------+
| user@example.com | example.com |
+-------------------+-------------+

場景 2:解析 URL 中的路徑

SELECT 
  SUBSTRING_INDEX(SUBSTRING_INDEX(url, '//', -1), '/', 1) AS host
FROM website;

輸入'https://www.sqlstudy.com/path'
輸出'www.sqlstudy.com'

總結

函數(shù)功能概要核心區(qū)別
LEFT() / RIGHT()從左右側截取固定長度方向固定,長度明確
SUBSTRING()靈活指定起始位置和長度支持正負位置,功能最全面
SUBSTRING_INDEX()基于分隔符截取適合處理結構化字符串(如路徑)
MID() / SUBSTR()SUBSTRING 功能相同語法別名,可互換使用

掌握這些函數(shù),可以高效處理字符串截取需求,提升數(shù)據(jù)處理的靈活性。

相關文章

  • mysql InnoDB建表時設定初始大小的方法

    mysql InnoDB建表時設定初始大小的方法

    這篇文章主要介紹了mysql InnoDB建表時設定初始大小的方法,需要大家到MYSQL后臺實際操作方可以看到效果
    2013-11-11
  • MySQLexplain之ref和rows的使用

    MySQLexplain之ref和rows的使用

    在MySQL中,優(yōu)化器通過分析表之間的引用關系、使用的索引列、以及估算查詢所需讀取的行數(shù)來優(yōu)化查詢,"ref"關鍵字顯示被參考的索引列,如果可能,這個值會是一個常數(shù),表示哪些列或常量用于查找索引列上的值,"rows"關鍵字表示優(yōu)化器根據(jù)表統(tǒng)計信息及索引使用情況
    2024-10-10
  • MySQL分頁查詢的三種常用方法

    MySQL分頁查詢的三種常用方法

    在處理數(shù)據(jù)庫查詢時,我們經常需要對結果進行分頁,以便在用戶界面上提供更好的瀏覽體驗,本文主要介紹了MySQL分頁查詢的三種常用方法,具有一定的參考價值,感興趣的可以了解一下
    2024-03-03
  • MySQL死鎖類deadlock問題排查

    MySQL死鎖類deadlock問題排查

    本文主要介紹了MySQL死鎖類deadlock問題排查,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2026-03-03
  • mysql合并字符串的實現(xiàn)

    mysql合并字符串的實現(xiàn)

    這篇文章主要介紹了mysql合并字符串的實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • MySQL 權限控制詳解

    MySQL 權限控制詳解

    這篇文章主要介紹了MySQL 權限控制詳解的相關資料,幫助大家更好的理解和學習使用MySQL,感興趣的朋友可以了解下
    2021-03-03
  • MySQL實現(xiàn)樂觀鎖的方式詳解

    MySQL實現(xiàn)樂觀鎖的方式詳解

    在 MySQL 中,可以通過使用樂觀鎖來實現(xiàn)并發(fā)控制,以避免數(shù)據(jù)沖突和并發(fā)更新問題,樂觀鎖是一種樂觀的思想,它假設并發(fā)操作不會導致沖突,只有在提交更新時才會檢查是否發(fā)生沖突,本文給大家介紹了Mysql如何實現(xiàn)樂觀鎖,需要的朋友可以參考下
    2023-09-09
  • mysql 8.0.15 下載安裝詳細教程 新手必備!

    mysql 8.0.15 下載安裝詳細教程 新手必備!

    這篇文章主要為大家詳細介紹了mysql 8.0.15 下載安裝詳細教程,純新手教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-03-03
  • MySQL之InnoDB存儲引擎中的頁用法解讀

    MySQL之InnoDB存儲引擎中的頁用法解讀

    這篇文章主要介紹了MySQL之InnoDB存儲引擎中的頁用法,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-06-06
  • 解決Win7 x64安裝解壓版mysql 5.7.18 winx64出現(xiàn)服務無法啟動問題

    解決Win7 x64安裝解壓版mysql 5.7.18 winx64出現(xiàn)服務無法啟動問題

    這篇文章主要介紹了解決Win7 x64安裝解壓版mysql 5.7.18 winx64出現(xiàn)服務無法啟動問題,需要的朋友可以參考下
    2017-05-05

最新評論

湖州市| 东丰县| 肃南| 保靖县| 荥经县| 安泽县| 汤阴县| 巫溪县| 塘沽区| 清流县| 民权县| 珠海市| 齐河县| 定陶县| 剑阁县| 石柱| 左云县| 河曲县| 托克托县| 龙岩市| 海盐县| 南木林县| 白河县| 巧家县| 韩城市| 武鸣县| 洞口县| 宜丰县| 师宗县| 汶上县| 巴林左旗| 武汉市| 朝阳县| 垦利县| 孝义市| 正阳县| 瓮安县| 厦门市| 双辽市| 上高县| 新邵县|