SQL的substring_index()用法實例(MySQL字符串截取)
1.substring_index函數(shù)的語法及其用法
(1)語法:substring_index(string,sep,num)
即substring_index(字符串,分隔符,序號)
參數(shù)說明
string:用于截取目標(biāo)字符串的字符串??蔀樽侄?,表達(dá)式等。
sep:分隔符,string存在且用于分割的字符,比如“,”、“.”等。
num:序號,為非0整數(shù)。若為整數(shù)則表示從左到右數(shù),若為負(fù)數(shù)則從右到左數(shù)。比如“www.mysql.com”截取字符‘www’,分割符為“.”,從左到右序號為1,即substring_index("www.mysql.com",'.',1);若從右開始獲取“com”則為序號為-1即substring_index("www.mysql.com",'.',-1)
(2)用于截取目標(biāo)字符串。
2.實例
(1)從某字段截取目標(biāo)字符串。
例:現(xiàn)有一個學(xué)生信息表student,詳細(xì)地址address儲存省、市、縣等由逗號隔開的地址信息,比如“XX省,XX市,XX區(qū),...,XXX號”。由于某種原因沒有學(xué)生所在省信息需要獲取,同時獲取學(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日期 之后存儲日期信息的格式出錯,日期前加了一些前綴,并用空格隔開,比如“13d 2022-02-01”,需要獲取該表2022-03-04之后具體日期信息,同時獲取單子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(),把多條記錄回顯到一條,再做分割
比如一個用戶可以維護多條學(xué)歷信息記錄,現(xiàn)在這個人維護了一所本科院校,倆所研究生院校,一所博士院校,現(xiàn)需要展示最高的一個學(xué)校,或者需要展示出所有的研究生院校。
/*研究生畢業(yè)院校*/
IF(
SUBSTRING_INDEX(
GROUP_CONCAT(
CASE
WHEN a02.R0205 = '11' //表示研究生
THEN a02.R0203
ELSE ','
END
ORDER BY a02.R0205, a02.R0206
),
',',
2
) = ',' // 如果沒有
,'', // 返回空,否則,返回下面語句
SUBSTRING_INDEX(
GROUP_CONCAT(
CASE
WHEN a02.R0205 = '21'
THEN a02.R0203
END
ORDER BY a02.R0205, a02.R0206
),
',',
2)
) AS dxbyyx,
結(jié)果:
中國人民大學(xué),清華大學(xué)
SQL的cast函數(shù)用法可參考SQL的CAST()——轉(zhuǎn)換數(shù)據(jù)類型
總結(jié)
到此這篇關(guān)于SQL的substring_index()用法的文章就介紹到這了,更多相關(guān)SQL substring_index()用法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MySQL數(shù)據(jù)庫安全秘籍之守護數(shù)據(jù)金庫防火防盜防攻擊
MySQL是許多公司和組織的關(guān)鍵數(shù)據(jù)庫,因此其安全性的重要性如此顯而易見,為了確保MySQL的安全性,需要采取多種措施來增強其安全性,本文給大家介紹MySQL數(shù)據(jù)庫安全秘籍之守護數(shù)據(jù)金庫防火防盜防攻擊,感興趣的朋友一起看看吧2023-03-03
基于Mysql+JavaSwing的超市商品管理系統(tǒng)設(shè)計與實現(xiàn)
本項目是使用Java swing開發(fā),可實現(xiàn)超市管理系統(tǒng)商品列表信息查詢、添加商品信息和修改商品管理以及刪除商品信息和安裝商品信息查詢等功能。界面設(shè)計和功能比較簡單基礎(chǔ)、適合作為Java課設(shè)設(shè)計以及學(xué)習(xí)技術(shù)使用,需要的朋友可以參考一下2021-09-09
MySQL 中 DATE_FORMAT() 函數(shù)的使用及應(yīng)用場景
DATE_FORMAT() 是 MySQL 中的一個內(nèi)置函數(shù),用于格式化日期和時間數(shù)據(jù),它可以根據(jù)指定的格式字符串來展示日期和時間,使得數(shù)據(jù)更容易閱讀和理解,本文檔將詳細(xì)介紹 DATE_FORMAT() 函數(shù)的使用方法及其常見應(yīng)用場景,感興趣的朋友一起看看吧2024-12-12
mysql如何查詢兩個日期之間最大的連續(xù)登錄天數(shù)
在現(xiàn)在的很多網(wǎng)站中都有這樣一個功能。記錄用戶的連續(xù)登陸天數(shù),所謂的連續(xù)在線是指相鄰兩天都登錄過,不一定一直在線,但是只要有過登錄即可。這篇文章主要介紹的是利用sql語句如何查詢在兩個日期之間最大的連續(xù)登錄天數(shù),有需要的朋友們下面來一起看看吧。2016-10-10
MySQL5.7.14下載安裝圖文教程及MySQL數(shù)據(jù)庫語句入門大全
這篇文章主要介紹了MySQL5.7.14下載安裝詳細(xì)教程及MySQL數(shù)據(jù)庫語句入門大全的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2016-09-09

