mysql字段截取的幾種函數(shù)和搭配函數(shù)示例代碼
一、substr函數(shù)
-- 函數(shù)的語(yǔ)法 -- substring函數(shù)與substr函數(shù)一樣 SUBSTR(str,position,length); SUBSTR(str from position for length);
- str:需要截取的字符串,支持嵌套
- position:截取的起始位置(索引從1開(kāi)始,負(fù)數(shù)表示從末尾倒序計(jì)數(shù),需MySQL 8.0+支持)
- length:是可選參數(shù);截取字符串的長(zhǎng)度(若為負(fù)數(shù)則返回空值)
-- 從position開(kāi)始截取至末尾 SUBSTR(str,position) SUBSTR(str FROM position) -- 從position開(kāi)始截取length長(zhǎng)度 SUBSTR(str,position,length) SUBSTR(str FROM position FOR length)
二、SUBSTRING_INDEX
功能:按分隔符截取字符串特定部分,支持正向/逆向計(jì)數(shù)
-- 語(yǔ)法 SUBSTRING_INDEX(str, delim, count)
參數(shù)解析:
- str:原始字符串或字段
- delim:分隔符(支持多字符)
- count:
正數(shù):從左往右截取前count個(gè)分隔符左側(cè)內(nèi)容
負(fù)數(shù):從右往左截取前abs(count)個(gè)分隔符右側(cè)內(nèi)容
-- 經(jīng)典案例
SELECT SUBSTRING_INDEX('chabaoo.cn', '.', 2); -- 結(jié)果:'www.jb51'
SELECT SUBSTRING_INDEX('100-200-300', '-', -1); -- 結(jié)果:'300'
SELECT SUBSTRING_INDEX('a|b|c', '|', 3); -- 結(jié)果:'a|b|c'(超出分隔符總數(shù)時(shí)返回完整字符串)
三、LEFT/RIGHT
功能:從字符串左/右側(cè)截取固定長(zhǎng)度子串。
-- 語(yǔ)法?: LEFT(str, length) RIGHT(str, length)
參數(shù):
- str:原始字符串
- length:截取長(zhǎng)度(需≥0,否則返回空值;若=0,返回空字符串)
四、LOCATE、instr、position
功能:返回子字符串首次出現(xiàn)的位置,未查詢(xún)到結(jié)果返回0
-- 語(yǔ)法 LOCATE(substr, str , start_pos) -- instr函數(shù)中參數(shù)區(qū)分大小寫(xiě),可以結(jié)合lower/upper共同 INSTR(str, substr) -- 可讀性高 POSITION(substr IN str)
參數(shù):
- substr:待查找的子字符串
- str:原始字符串
- start_pos:起始搜索位置(可以不填,默認(rèn)值1)
五、獲取json字符串里面的指定值
1、JSON_EXTRACT()
-- 語(yǔ)法: JSON_EXTRACT(json_doc, path)
參數(shù)說(shuō)明:
- json_doc:JSON類(lèi)型字段名或JSON字符串
- path:JSON路徑表達(dá)式(以$開(kāi)頭,支持.和[]訪問(wèn)對(duì)象/數(shù)組)
-- 提取JSON對(duì)象中的cusId字段
SELECT JSON_EXTRACT(zt.follow_up_source, '$.cusId') FROM table_name;
-- 提取數(shù)組第一個(gè)元素的name字段(索引從0開(kāi)始)
SELECT JSON_EXTRACT('[{\"name\":\"John\"},{\"name\":\"Jane\"}]', '$[0].name');
2、JSON_UNQUOTE()
功能:移除JSON_EXTRACT返回值的引號(hào),將JSON字符串轉(zhuǎn)為普通文本
SELECT JSON_UNQUOTE(JSON_EXTRACT(info, '$.name')) FROM users WHERE id=1; -- 等效簡(jiǎn)寫(xiě):->>運(yùn)算符(MySQL 5.7+支持) SELECT info->>'$.name' FROM users;
MySQL 5.7+、mariadb10.2.0+:支持基礎(chǔ)JSON函數(shù)
總結(jié)
到此這篇關(guān)于mysql字段截取的幾種函數(shù)和搭配函數(shù)的文章就介紹到這了,更多相關(guān)mysql字段截取函數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Linux服務(wù)上MySQL啟動(dòng)、重啟和關(guān)閉的操作方法
MySQL是一種廣泛使用的開(kāi)源關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),常用于各種規(guī)模的應(yīng)用程序中,在Linux服務(wù)器上管理MySQL服務(wù)是一個(gè)基本的運(yùn)維任務(wù),本文將詳細(xì)介紹如何在Linux系統(tǒng)上啟動(dòng)、重啟和關(guān)閉MySQL服務(wù),涵蓋不同Linux發(fā)行版(如Ubuntu和CentOS)的操作方法2024-11-11
MySql日期查詢(xún)數(shù)據(jù)的實(shí)現(xiàn)
本文主要介紹了MySql日期查詢(xún)數(shù)據(jù)的實(shí)現(xiàn),詳細(xì)的介紹了幾種日期函數(shù)的具體使用,及其具體某天的查詢(xún),具有一定的參考價(jià)值,感興趣的可以了解一下2023-01-01
Mysql修改datadir導(dǎo)致無(wú)法啟動(dòng)問(wèn)題解決方法
這篇文章主要介紹了Mysql修改datadir導(dǎo)致無(wú)法啟動(dòng)問(wèn)題解決方法,本文原因是SELINUX導(dǎo)致,用關(guān)閉SELINUX的方法解決了這個(gè)問(wèn)題,需要的朋友可以參考下2015-02-02
win10下mysql5.7.21安裝詳細(xì)過(guò)程
這篇文章主要為大家詳細(xì)介紹了win10下mysql5.7.21安裝的詳細(xì)過(guò)程,以及安裝Mysql 5.7.21遇到的問(wèn)題,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-02-02
SQL中MIN和MAX及常見(jiàn)函數(shù)教程示例
這篇文章主要為大家介紹了SQL中MIN和MAX及常見(jiàn)函數(shù)教程示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11

