SQL的substring_index()用法實(shí)例(MySQL字符串截取)
1.substring_index函數(shù)的語(yǔ)法及其用法
(1)語(yǔ)法:substring_index(string,sep,num)
即substring_index(字符串,分隔符,序號(hào))
參數(shù)說(shuō)明
string:用于截取目標(biāo)字符串的字符串??蔀樽侄?,表達(dá)式等。
sep:分隔符,string存在且用于分割的字符,比如“,”、“.”等。
num:序號(hào),為非0整數(shù)。若為整數(shù)則表示從左到右數(shù),若為負(fù)數(shù)則從右到左數(shù)。比如“www.mysql.com”截取字符‘www’,分割符為“.”,從左到右序號(hào)為1,即substring_index("www.mysql.com",'.',1);若從右開(kāi)始獲取“com”則為序號(hào)為-1即substring_index("www.mysql.com",'.',-1)
(2)用于截取目標(biāo)字符串。
2.實(shí)例
(1)從某字段截取目標(biāo)字符串。
例:現(xiàn)有一個(gè)學(xué)生信息表student,詳細(xì)地址address儲(chǔ)存省、市、縣等由逗號(hào)隔開(kāi)的地址信息,比如“XX省,XX市,XX區(qū),...,XXX號(hào)”。由于某種原因沒(méi)有學(xué)生所在省信息需要獲取,同時(shí)獲取學(xué)生姓名name,性別sex,年齡age。
select name,sex,age, substring_index(address,',',1) as province from student
(2)與cast函數(shù)結(jié)合使用截取某字符串并轉(zhuǎn)為目標(biāo)格式。
例:現(xiàn)有一張訂單信息data,由于2022-03-04日期 之后存儲(chǔ)日期信息的格式出錯(cuò),日期前加了一些前綴,并用空格隔開(kāi),比如“13d 2022-02-01”,需要獲取該表2022-03-04之后具體日期信息,同時(shí)獲取單子offer_id,以及產(chǎn)品名name。
select cast(substring_index(ctime,' ',1) as date) as dt, offer_id,name FROM data WHERE substring_index(ctime,' ',1)>= '2022-03-04'
附:結(jié)合group_concat(),把多條記錄回顯到一條,再做分割
比如一個(gè)用戶可以維護(hù)多條學(xué)歷信息記錄,現(xiàn)在這個(gè)人維護(hù)了一所本科院校,倆所研究生院校,一所博士院校,現(xiàn)需要展示最高的一個(gè)學(xué)校,或者需要展示出所有的研究生院校。
/*研究生畢業(yè)院校*/ IF( SUBSTRING_INDEX( GROUP_CONCAT( CASE WHEN a02.R0205 = '11' //表示研究生 THEN a02.R0203 ELSE ',' END ORDER BY a02.R0205, a02.R0206 ), ',', 2 ) = ',' // 如果沒(méi)有 ,'', // 返回空,否則,返回下面語(yǔ)句 SUBSTRING_INDEX( GROUP_CONCAT( CASE WHEN a02.R0205 = '21' THEN a02.R0203 END ORDER BY a02.R0205, a02.R0206 ), ',', 2) ) AS dxbyyx,
結(jié)果:
中國(guó)人民大學(xué),清華大學(xué)
SQL的cast函數(shù)用法可參考SQL的CAST()——轉(zhuǎn)換數(shù)據(jù)類型
總結(jié)
到此這篇關(guān)于SQL的substring_index()用法的文章就介紹到這了,更多相關(guān)SQL substring_index()用法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
mysql中時(shí)間字段設(shè)置遇到的問(wèn)題
這篇文章主要介紹了mysql中時(shí)間字段設(shè)置遇到的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07MySQL學(xué)習(xí)第二天 安裝和配置mysql winx64
MySQL學(xué)習(xí)第二天,主要為大家詳細(xì)介紹了在Windows 64位操作系統(tǒng)下安裝和配置MySQL的具體步驟,整理一份mysql winx64安裝配置方法教程,感興趣的小伙伴們可以參考一下2016-05-05MySQL存儲(chǔ)引擎MyISAM與InnoDB的9點(diǎn)區(qū)別
這篇文章主要介紹了MySQL存儲(chǔ)引擎MyISAM與InnoDB的9點(diǎn)區(qū)別,寫給有選擇困難癥的同學(xué),需要的朋友可以參考下2014-08-08MySQL判斷列的值既不為NULL又不為空字符串的問(wèn)題
這篇文章主要介紹了MySQL判斷列的值既不為NULL又不為空字符串的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08MYSQL設(shè)置字段自動(dòng)獲取當(dāng)前時(shí)間的sql語(yǔ)句
整理數(shù)據(jù)庫(kù)數(shù)據(jù),看到好多表都有加create_time和 update_time字段,來(lái)記錄數(shù)據(jù)插入的時(shí)間和更新時(shí)間,但是時(shí)間插入是通過(guò)代碼來(lái)維護(hù)的,這篇文章主要介紹了MYSQL設(shè)置字段自動(dòng)獲取當(dāng)前時(shí)間,需要的朋友可以參考下2023-07-07