在實際的專案開發中有時會有對資料庫某欄位擷取部分的需求,這種場景有時直接透過資料庫操作來實現比透過程式碼實現要更方便快捷些,mysql有很多字串函式可以用來處理這些需求,如Mysql字串擷取總結:left()、right()、substring()、substring_index()。
一.從左開始擷取字串
用法:left(str, length),即:left(被擷取字串, 擷取長度)
SELECT LEFT('www.lingyejun.com',8);
結果為:www.ling
二.從右開始擷取字串
用法:right(str, length),即:right(被擷取字串, 擷取長度)
SELECT RIGHT('www.lingyejun.com',6);
結果為:un.com
三.擷取特定長度的字串
用法:
- substring(str, pos),即:substring(被擷取字串, 從第幾位開始擷取)
- substring(str, pos, length),即:substring(被擷取字串,從第幾位開始擷取,擷取長度)
1.從字串的第9個字元開始讀取直至結束
SELECT SUBSTRING('www.lingyejun.com', 9);
結果為:yejun.com
2.從字串的第9個字元開始,只取3個字元
SELECT SUBSTRING('www.lingyejun.com', 9, 3);
結果為:yju
3.從字串的倒數第6個字元開始讀取直至結束
SELECT SUBSTRING('www.lingyejun.com', -6);
結果為:un.com
4.從字串的倒數第6個字元開始讀取,只取2個字元
SELECT SUBSTRING('www.lingyejun.com', -6, 2);
結果為:un
四.按關鍵字進行讀取
用法:substring_index(str, delim, count),即:substring_index(被擷取字串,關鍵字,關鍵字出現的次數)
1.擷取第二個“.”之前的所有字元
SELECT SUBSTRING_INDEX('www.lingyejun.com', '.', 2);
結果為:www.lingyejun
2.擷取倒數第二個“.”之後的所有字元
SELECT SUBSTRING_INDEX('www.lingyejun.com', '.', -2);
結果為:lingyejun.com
3.如果關鍵字不存在,則返回整個字串
SELECT SUBSTRING_INDEX('www.lingyejun.com', 'sprite', 1);
結果為:www.lingyejun.com
本篇文章如有幫助到您,請給「翎野君」點個贊,感謝您的支援。
首發連結:https://www.cnblogs.com/lingyejun/p/18370538