Mysql字符串截取及獲取指定字符串中的數(shù)據(jù)
前言:本人遇到一個(gè)需求,需要在MySql的字段中截取一段字符串中的特定字符,類(lèi)似于正則表達(dá)式的截取,苦于沒(méi)有合適的方法,百度之后終于找到一個(gè)合適的方法:substring_index('www.sqlstudy.com.cn', '.', -2)
強(qiáng)烈推薦該方法獲取含有特定字符的數(shù)據(jù)。
substring_index(input,split,index):input為要截取的字符,split為分隔符,Index為要截取第index個(gè)分隔符左(index為正)或右(index為負(fù))的字符串。
拿個(gè)人的一個(gè)字符串舉例:'Provider="RiskManagement" finalScore="65" RGID="100397278"' 我要獲取finalScore的值:
-- 1-獲取finalScore右邊的字符 select substring_index('Provider="RiskManagement" finalScore="65" RGID="100397278"','finalScore="',-1); -- 2-再獲取" RGID="左邊的字符 select substring_index(substring_index('Provider="RiskManagement" finalScore="65" RGID="100397278"','finalScore="',-1),'" RGID="',1);
結(jié)果1:65" RGID="100397278"
結(jié)果2:65
MySQL 字符串截取函數(shù):left(), right(), substring(), substring_index()。還有 mid(), substr()。其中,mid(), substr() 等價(jià)于 substring() 函數(shù),substring() 的功能非常強(qiáng)大和靈活。
1. 字符串截?。簂eft(str, length)
mysql> select left('sqlstudy.com', 3); +-------------------------+ | left('sqlstudy.com', 3) | +-------------------------+ | sql | +-------------------------+
2. 字符串截?。簉ight(str, length)
mysql> select right('sqlstudy.com', 3); +--------------------------+ | right('sqlstudy.com', 3) | +--------------------------+ | com | +--------------------------+
3. 字符串截?。簊ubstring(str, pos); substring(str, pos, len)
3.1 從字符串的第 4 個(gè)字符位置開(kāi)始取,直到結(jié)束。
mysql> select substring('sqlstudy.com', 4); +------------------------------+ | substring('sqlstudy.com', 4) | +------------------------------+ | study.com | +------------------------------+
3.2 從字符串的第 4 個(gè)字符位置開(kāi)始取,只取 2 個(gè)字符。
mysql> select substring('sqlstudy.com', 4, 2); +---------------------------------+ | substring('sqlstudy.com', 4, 2) | +---------------------------------+ | st | +---------------------------------+
3.3 從字符串的第 4 個(gè)字符位置(倒數(shù))開(kāi)始取,直到結(jié)束。
mysql> select substring('sqlstudy.com', -4); +-------------------------------+ | substring('sqlstudy.com', -4) | +-------------------------------+ | .com | +-------------------------------+
3.4 從字符串的第 4 個(gè)字符位置(倒數(shù))開(kāi)始取,只取 2 個(gè)字符。
mysql> select substring('sqlstudy.com', -4, 2); +----------------------------------+ | substring('sqlstudy.com', -4, 2) | +----------------------------------+ | .c | +----------------------------------+
我們注意到在函數(shù) substring(str,pos, len)中, pos 可以是負(fù)值,但 len 不能取負(fù)值。
4. 字符串截?。簊ubstring_index(str,delim,count)
4.1 截取第二個(gè) '.' 之前的所有字符。
mysql> select substring_index('www.sqlstudy.com.cn', '.', 2); +------------------------------------------------+ | substring_index('www.sqlstudy.com.cn', '.', 2) | +------------------------------------------------+ | www.sqlstudy | +------------------------------------------------+
4.2 截取第二個(gè) '.' (倒數(shù))之后的所有字符。
mysql> select substring_index('www.sqlstudy.com.cn', '.', -2); +-------------------------------------------------+ | substring_index('www.sqlstudy.com.cn', '.', -2) | +-------------------------------------------------+ | com.cn | +-------------------------------------------------+
4.3 如果在字符串中找不到 delim 參數(shù)指定的值,就返回整個(gè)字符串
mysql> select substring_index('www.sqlstudy.com.cn', '.coc', 1); +---------------------------------------------------+ | substring_index('www.sqlstudy.com.cn', '.coc', 1) | +---------------------------------------------------+ | www.sqlstudy.com.cn | +---------------------------------------------------+
4.4 截取一個(gè)表某個(gè)字段數(shù)據(jù)的中間值 如該字段數(shù)據(jù)為 1,2,3
mysql> select substring_index(substring_index(該字段, ',', 2) , ',', -1) from 表名; +--------------------------------------------------------------+ | substring_index(substring_index(該字段, ',', 2); , ',', -1)| +--------------------------------------------------------------+ | 2 | +--------------------------------------------------------------+
總結(jié)
以上所述是小編給大家介紹的Mysql字符串截取及獲取指定字符串中的數(shù)據(jù),希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺(jué)得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!
相關(guān)文章
mysql下centos安裝mariadb的方法及遇到的問(wèn)題
這篇文章主要介紹了mysql下centos安裝mariadb的方法及遇到的問(wèn)題,在安裝之前要?jiǎng)h除之前安裝的mariadb,具體安裝方法及遇到問(wèn)題解決方法,大家參考下本文2018-05-05MYSQL使用正則表達(dá)式過(guò)濾數(shù)據(jù)
這篇文章主要介紹了MYSQL使用正則表達(dá)式過(guò)濾數(shù)據(jù)的相關(guān)資料,感興趣的小伙伴們可以參考一下2016-05-05MySQL必備的常見(jiàn)知識(shí)點(diǎn)匯總整理
這篇文章主要介紹了MySQL必備的常見(jiàn)知識(shí)點(diǎn),結(jié)合實(shí)例形式匯總整理了mysql各種常見(jiàn)知識(shí)點(diǎn),包括登錄、退出、創(chuàng)建、增刪改查、事務(wù)等知識(shí)點(diǎn)與操作注意事項(xiàng),需要的朋友可以參考下2020-05-05mysql 觸發(fā)器語(yǔ)法與應(yīng)用示例
這篇文章主要介紹了mysql 觸發(fā)器語(yǔ)法與應(yīng)用,結(jié)合實(shí)例形式詳細(xì)分析了mysql 觸發(fā)器的基本語(yǔ)法與插入、更細(xì)、刪除等相關(guān)操作技巧,需要的朋友可以參考下2020-05-05MySQL中使用流式查詢(xún)避免數(shù)據(jù)OOM
這篇文章主要介紹了MySQL中使用流式查詢(xún)避免數(shù)據(jù)OOM,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01

關(guān)于Mysql查詢(xún)帶單引號(hào)及插入帶單引號(hào)字符串問(wèn)題

深入研究mysql中的varchar和limit(容易被忽略的知識(shí))