在實際的項目開發中有時會有對數據庫某字段截取部分的需求,這種場景有時直接通過數據庫操作來實現比通過代碼實現要更方便快捷些,MySQL有很多字符串函數可以用來處理這些需求,如Mysql字符串截取總結:left()、right()、substring()、substring_index()。
一.從左開始截取字符串
用法:left(str, length),即:left(被截取字符串, 截取長度)
SELECT LEFT('www.yuanrengu.com',8);
結果為:www.yuan
二.從右開始截取字符串
用法:right(str, length),即:right(被截取字符串, 截取長度)
SELECT RIGHT('www.yuanrengu.com',6);
結果為:gu.com
三.截取特定長度的字符串
用法:
- substring(str, pos),即:substring(被截取字符串, 從第幾位開始截取)
- substring(str, pos, length),即:substring(被截取字符串,從第幾位開始截取,截取長度)
1.從字符串的第9個字符開始讀取直至結束
SELECT SUBSTRING('www.yuanrengu.com', 9);
結果為:rengu.com
2.從字符串的第9個字符開始,只取3個字符
SELECT SUBSTRING('www.yuanrengu.com', 9, 3);
結果為:ren
3.從字符串的倒數第6個字符開始讀取直至結束
SELECT SUBSTRING('www.yuanrengu.com', -6);
結果為:gu.com
4.從字符串的倒數第6個字符開始讀取,只取2個字符
SELECT SUBSTRING('www.yuanrengu.com', -6, 2);
結果為:gu
四.按關鍵字進行讀取
用法:substring_index(str, delim, count),即:substring_index(被截取字符串,關鍵字,關鍵字出現的次數)
1.截取第二個“.”之前的所有字符
SELECT SUBSTRING_INDEX('www.yuanrengu.com', '.', 2);
結果為:www.yuanrengu
2.截取倒數第二個“.”之后的所有字符
SELECT SUBSTRING_INDEX('www.yuanrengu.com', '.', -2);
結果為:yuanrengu.com
3.如果關鍵字不存在,則返回整個字符串
SELECT SUBSTRING_INDEX('www.yuanrengu.com', 'sprite', 1);
結果為:www.yuanrengu.com