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ù)據(jù)庫(kù)安全秘籍之守護(hù)數(shù)據(jù)金庫(kù)防火防盜防攻擊
MySQL是許多公司和組織的關(guān)鍵數(shù)據(jù)庫(kù),因此其安全性的重要性如此顯而易見(jiàn),為了確保MySQL的安全性,需要采取多種措施來(lái)增強(qiáng)其安全性,本文給大家介紹MySQL數(shù)據(jù)庫(kù)安全秘籍之守護(hù)數(shù)據(jù)金庫(kù)防火防盜防攻擊,感興趣的朋友一起看看吧2023-03-03
Spark SQL常見(jiàn)4種數(shù)據(jù)源詳解
這篇文章主要介紹了Spark SQL常見(jiàn)4種數(shù)據(jù)源(詳細(xì)),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,,需要的朋友可以參考下2019-06-06
基于Mysql+JavaSwing的超市商品管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
本項(xiàng)目是使用Java swing開(kāi)發(fā),可實(shí)現(xiàn)超市管理系統(tǒng)商品列表信息查詢、添加商品信息和修改商品管理以及刪除商品信息和安裝商品信息查詢等功能。界面設(shè)計(jì)和功能比較簡(jiǎn)單基礎(chǔ)、適合作為Java課設(shè)設(shè)計(jì)以及學(xué)習(xí)技術(shù)使用,需要的朋友可以參考一下2021-09-09
mysql5.7.19 zip 詳細(xì)安裝過(guò)程和配置
本文詳細(xì)給大家介紹了mysql5.7.19 zip 詳細(xì)安裝過(guò)程和配置,感興趣的朋友一起看看吧2017-10-10
MySQL 中 DATE_FORMAT() 函數(shù)的使用及應(yīng)用場(chǎng)景
DATE_FORMAT() 是 MySQL 中的一個(gè)內(nèi)置函數(shù),用于格式化日期和時(shí)間數(shù)據(jù),它可以根據(jù)指定的格式字符串來(lái)展示日期和時(shí)間,使得數(shù)據(jù)更容易閱讀和理解,本文檔將詳細(xì)介紹 DATE_FORMAT() 函數(shù)的使用方法及其常見(jiàn)應(yīng)用場(chǎng)景,感興趣的朋友一起看看吧2024-12-12
mysql如何查詢兩個(gè)日期之間最大的連續(xù)登錄天數(shù)
在現(xiàn)在的很多網(wǎng)站中都有這樣一個(gè)功能。記錄用戶的連續(xù)登陸天數(shù),所謂的連續(xù)在線是指相鄰兩天都登錄過(guò),不一定一直在線,但是只要有過(guò)登錄即可。這篇文章主要介紹的是利用sql語(yǔ)句如何查詢?cè)趦蓚€(gè)日期之間最大的連續(xù)登錄天數(shù),有需要的朋友們下面來(lái)一起看看吧。2016-10-10
MySQL5.7.14下載安裝圖文教程及MySQL數(shù)據(jù)庫(kù)語(yǔ)句入門大全
這篇文章主要介紹了MySQL5.7.14下載安裝詳細(xì)教程及MySQL數(shù)據(jù)庫(kù)語(yǔ)句入門大全的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-09-09

