"); //-->
在工作中,可能需要將某些字段按某個(gè)分割符組成一個(gè)字符串作為字段值存取到數(shù)據(jù)庫表中,比如某個(gè)任務(wù)對應(yīng)三個(gè)結(jié)果,分別存儲在不同的數(shù)據(jù)表中,這時(shí)可以將這三個(gè)不同表的主鍵按照約定的順序進(jìn)行組合(主鍵a:主鍵b:主鍵c)。當(dāng)需要分別去查任務(wù)對應(yīng)類別的詳情信息時(shí),可以截取特定位置的字符串(主鍵b)join表b進(jìn)行操作。正好最近也遇到這塊操作,特意將MySQL字符串截取的相關(guān)函數(shù)做一個(gè)梳理,以便今后回顧。

一、left(str,len)
返回字符串str自左數(shù)的len個(gè)字符。如果任一參數(shù)為NULL,則返回NULL。
mysql>selectleft('codingke.com',5);
+---------------------------------------------------------+
|left('codingke.com',5)|
+---------------------------------------------------------+
|codin|
+---------------------------------------------------------+
rowinset(0.00sec)
二、right(str,len)
返回str右邊末len位的字符。如果有的參數(shù)是NULL值,則返回NULL。
mysql>selectright('codingke.com',4);
+---------------------------------------------------------+
|right('codingke.com',4)|
+---------------------------------------------------------+
|.com|
+---------------------------------------------------------+
rowinset(0.00sec)
三、substring_index(str,delim,count)
返回str中第count次出現(xiàn)的分隔符delim之前的子字符串。如果count為正數(shù),將最后一個(gè)分隔符左邊(因?yàn)槭菑淖髷?shù)分隔符)的所有內(nèi)容作為子字符串返回;如果count為負(fù)值,返回最后一個(gè)分隔符右邊(因?yàn)槭菑挠覕?shù)分隔符)的所有內(nèi)容作為子字符串返回。在尋找分隔符時(shí),函數(shù)對大小寫是敏感的。如果在字符串str中找不到delim參數(shù)指定的值,就返回整個(gè)字符串。
mysql>selectsubstring_index('www.codingke.com','.',2);
+---------------------------------------------------------+
|substring_index('www.codingke.com','.',2)|
+---------------------------------------------------------+
|www.codingke|
+---------------------------------------------------------+
1rowinset(0.00sec)
mysql>selectsubstring_index('www.codingke.com','/',2);
+---------------------------------------------------------+
|substring_index('www.codingke.com','/',2)|
+---------------------------------------------------------+
|www.codingke.com|
+---------------------------------------------------------+
rowinset(0.00sec)
四、substring()與substr()
substring(str,pos)、substring(strfrompos)、substring(str,pos,len)、substring(strfromposforlen)比較
在以上4種函數(shù)變種形式中,沒有l(wèi)en參數(shù)的函數(shù)形式會返回自str中位置pos處之后的子字符串;有l(wèi)en參數(shù)的函數(shù)形式會返回自str中位置pos處之后,長度為len的子字符串。使用FROM的函數(shù)形式則是采用的標(biāo)準(zhǔn)的SQL語法。pos參數(shù)也可能取負(fù)值,在這種情況下,取字符串的方式是從字符串str的末尾向前(而非從前往后),從這種逆向順序的pos處開始取字符串。另外,負(fù)值的pos參數(shù)可用于任何形式的substring()函數(shù)中。
mysql>selectsubstring('codingke.com',6);
+---------------------------------------------------------+
|substring('codingke.com',6)|
+---------------------------------------------------------+
|ngke.com|
+---------------------------------------------------------+
rowinset(0.00sec)
mysql>selectsubstr('codingke.com'from6);
+---------------------------------------------------------+
|substr('codingke.com'from6)|
+---------------------------------------------------------+
|ngke.com|
+---------------------------------------------------------+
rowinset(0.00sec)
mysql>selectsubstring('codingke.com',-10,4);
+---------------------------------------------------------+
|substring('codingke.com',-10,4)|
+---------------------------------------------------------+
|hont|
+---------------------------------------------------------+
五、trim([{both|leading|trailing}[remstr]form]str)
將字符串str去除remstr所指定的前綴或后綴,返回結(jié)果字符串。如果沒有指定標(biāo)識符both、leading,或trailing,則默認(rèn)采用both,即將前后綴都刪除。remstr其實(shí)是個(gè)可選參數(shù),如果沒有指定它,則刪除的是空格。
mysql>selecttrim('codingke.com');
+---------------------------------------------------------+
|trim('codingke.com')|
+---------------------------------------------------------+
|codingke.com|
+---------------------------------------------------------+
rowinset(0.00sec)
mysql>selecttrim(leading'www.'from'www.codingke.com');
+---------------------------------------------------------+
|trim(leading'www.'from'www.codingke.com')|
+---------------------------------------------------------+
|pythontab.com|
+---------------------------------------------------------+
rowinset(0.00sec)
mysql>selecttrim(both'www.'from'www.codingke.com');
+---------------------------------------------------------+
|trim(both'www.'from'www.codingke.com')|
+---------------------------------------------------------+
|codingke.com|
+---------------------------------------------------------+
rowinset(0.00sec)
mysql>selecttrim(trailing'www.'from'www.codingke.com');
+---------------------------------------------------------+
|trim(trailing'www.'from'www.codingke.com')|
+---------------------------------------------------------+
|www.codingke.com|
+---------------------------------------------------------+
rowinset(0.00sec)以上就是扣丁學(xué)堂MySQL字符串截取相關(guān)函數(shù)總結(jié)的詳細(xì)介紹,希望能幫助不太了解PHP的小伙伴們。想要學(xué)習(xí)PHP的小伙伴小編給大家推薦值得信賴的扣丁學(xué)堂學(xué)習(xí),扣丁學(xué)堂PHP培訓(xùn)不僅有專業(yè)的老師和與時(shí)俱進(jìn)的課程體系,還有大量的PHP視頻教程供學(xué)員觀看學(xué)習(xí),想要學(xué)好PHP的小伙伴快快行動吧。扣丁學(xué)堂PHP技術(shù)交流群:374332265。微信號:codingbb
*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請聯(lián)系工作人員刪除。
相關(guān)推薦
電商直播新勢力——IDC中國AI Agent之電商直播數(shù)字人實(shí)測報(bào)告發(fā)布
人形機(jī)器人產(chǎn)業(yè)鏈企業(yè)解讀之 “人形機(jī)器人視覺領(lǐng)航者 —奧比中光”
賽靈思宣傳片
三星T100/T108手機(jī)維修實(shí)物圖(二)
英特爾工程師談客戶端處理器取消超線程:同功耗面積下性能更出色
硬件開源 大勢所趨 ——賽靈斯大學(xué)計(jì)劃大中華區(qū)經(jīng)理謝凱年
特朗普關(guān)稅大棒下,英偉達(dá)投資5000億美元:最強(qiáng)AI芯片將在美國制造
周明老師《嵌入式Linux驅(qū)動程序》實(shí)況視頻下載
OpenAI放大招!GPT-4.1上線,編程戰(zhàn)力全開
三星T500/T508手機(jī)維修實(shí)物圖(二)
vxworks下PPP的實(shí)現(xiàn)原理是什么?
IC封裝趨勢的當(dāng)前挑戰(zhàn)
國立成功大學(xué):基于 NetFPGA 平臺之 OpenFlow 虛擬網(wǎng)路頻寬管理系統(tǒng)
Melexis:把握亞洲機(jī)遇,邁向穩(wěn)健發(fā)展
一季度全球智能手機(jī)市場在緊張局勢下仍同比增長1.5%
美國啟動藥品與芯片進(jìn)口調(diào)查,準(zhǔn)備單獨(dú)加征關(guān)稅?
華強(qiáng)北市場多款熱門芯片“封庫存” 分銷商稱有客戶轉(zhuǎn)向國產(chǎn)
陳立武出手!英特爾出售旗下Altera芯片業(yè)務(wù)51%股份
MEMSIC SEMICONDUCTOR美新招聘高科技人才
專題1、WINCE開發(fā)上手指南(視頻下載)
[求助]如何生成.rom文件
[推薦]可以在windows下試問linux分區(qū)的軟件
諾基亞5210手機(jī)故障維修實(shí)物彩圖(1)
諾基亞5210 手機(jī)故障維修實(shí)物彩圖(2)
第三屆OpenHW開源硬件與嵌入式大賽總決賽現(xiàn)場實(shí)錄
大嘴業(yè)話:企業(yè)轉(zhuǎn)型模式的探討
周明老師《嵌入式Linux驅(qū)動程序》PDF課件下載
三星T500/T508手機(jī)維修實(shí)物圖(一)
周明老師《嵌入式Linux驅(qū)動程序》PPT視頻下載
孫志夫老師《嵌入式Linux系統(tǒng)平臺構(gòu)建》PPT視頻下載