mysql字段截取的幾種函數(shù)和搭配函數(shù)示例代碼
一、substr函數(shù)
-- 函數(shù)的語法 -- substring函數(shù)與substr函數(shù)一樣 SUBSTR(str,position,length); SUBSTR(str from position for length);
- str:需要截取的字符串,支持嵌套
- position:截取的起始位置(索引從1開始,負數(shù)表示從末尾倒序計數(shù),需MySQL 8.0+支持)
- length:是可選參數(shù);截取字符串的長度(若為負數(shù)則返回空值)
-- 從position開始截取至末尾 SUBSTR(str,position) SUBSTR(str FROM position) -- 從position開始截取length長度 SUBSTR(str,position,length) SUBSTR(str FROM position FOR length)
二、SUBSTRING_INDEX
功能:按分隔符截取字符串特定部分,支持正向/逆向計數(shù)
-- 語法 SUBSTRING_INDEX(str, delim, count)
參數(shù)解析:
- str:原始字符串或字段
- delim:分隔符(支持多字符)
- count:
正數(shù):從左往右截取前count個分隔符左側內容
負數(shù):從右往左截取前abs(count)個分隔符右側內容
-- 經(jīng)典案例
SELECT SUBSTRING_INDEX('m.fzitv.net', '.', 2); -- 結果:'www.jb51'
SELECT SUBSTRING_INDEX('100-200-300', '-', -1); -- 結果:'300'
SELECT SUBSTRING_INDEX('a|b|c', '|', 3); -- 結果:'a|b|c'(超出分隔符總數(shù)時返回完整字符串)
三、LEFT/RIGHT
功能:從字符串左/右側截取固定長度子串。
-- 語法?: LEFT(str, length) RIGHT(str, length)
參數(shù):
- str:原始字符串
- length:截取長度(需≥0,否則返回空值;若=0,返回空字符串)
四、LOCATE、instr、position
功能:返回子字符串首次出現(xiàn)的位置,未查詢到結果返回0
-- 語法 LOCATE(substr, str , start_pos) -- instr函數(shù)中參數(shù)區(qū)分大小寫,可以結合lower/upper共同 INSTR(str, substr) -- 可讀性高 POSITION(substr IN str)
參數(shù):
- substr:待查找的子字符串
- str:原始字符串
- start_pos:起始搜索位置(可以不填,默認值1)
五、獲取json字符串里面的指定值
1、JSON_EXTRACT()
-- 語法: JSON_EXTRACT(json_doc, path)
參數(shù)說明:
- json_doc:JSON類型字段名或JSON字符串
- path:JSON路徑表達式(以$開頭,支持.和[]訪問對象/數(shù)組)
-- 提取JSON對象中的cusId字段
SELECT JSON_EXTRACT(zt.follow_up_source, '$.cusId') FROM table_name;
-- 提取數(shù)組第一個元素的name字段(索引從0開始)
SELECT JSON_EXTRACT('[{\"name\":\"John\"},{\"name\":\"Jane\"}]', '$[0].name');
2、JSON_UNQUOTE()
功能:移除JSON_EXTRACT返回值的引號,將JSON字符串轉為普通文本
SELECT JSON_UNQUOTE(JSON_EXTRACT(info, '$.name')) FROM users WHERE id=1; -- 等效簡寫:->>運算符(MySQL 5.7+支持) SELECT info->>'$.name' FROM users;
MySQL 5.7+、mariadb10.2.0+:支持基礎JSON函數(shù)
總結
到此這篇關于mysql字段截取的幾種函數(shù)和搭配函數(shù)的文章就介紹到這了,更多相關mysql字段截取函數(shù)內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
MySQL使用binlog日志回滾操作失誤的數(shù)據(jù)的操作教程
在日常開發(fā)運維中,我們可能會出現(xiàn)一些操作失誤的情況,比如使用了錯誤的 sql 語句對 mysql 數(shù)據(jù)進行了 update、delete 等操作,失誤操作導致數(shù)據(jù)出現(xiàn)問題,那么如果出現(xiàn)這種情況,應該如何恢復失誤/mysql 誤刪數(shù)據(jù)時,本文將使用幾種常用方法帶你回滾誤刪的數(shù)據(jù)2025-08-08
MySQL中一些優(yōu)化straight_join技巧
這篇文章主要介紹了MySQL中一些優(yōu)化straight_join技巧,作者通過用戶的實際案例分析,需要的朋友可以參考下2015-05-05
MySQL數(shù)據(jù)庫無法遠程連接的問題詳細解決過程
這篇文章主要介紹了MySQL數(shù)據(jù)庫無法遠程連接問題的詳細解決過程,解決MySQL無法遠程連接的問題需要檢查并修改MySQL的用戶權限,確保配置文件允許遠程訪問,并且防火墻開放3306端口,需要的朋友可以參考下2025-05-05
MySQL數(shù)據(jù)庫運維之數(shù)據(jù)恢復的方法
本篇文章主要介紹了MySQL數(shù)據(jù)庫運維之數(shù)據(jù)恢復的方法,此處總結一下恢復方案,并結合數(shù)據(jù)庫的二進制日志做下數(shù)據(jù)恢復的示范。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-06-06
傻瓜式用Eclipse連接MySQL數(shù)據(jù)庫
本來不想寫這么簡單人文章,在百度上搜索我這個標題,完全符合標題的一大堆。但我按照那些文章?lián)v鼓了很久,就是不行。2015-09-09
超詳細mysql left join,right join,inner join用法分析
比較詳細的mysql的幾種連接功能分析,只要你看完就能學會的好東西2008-08-08

