mysql字符串指定字符串截取


前言:之前遇到一個需求,需要在MySql的字段中截取一段字符串中的特定字符,類似於正則表達式的截取,接個百度的方法,和咨詢大數據的同事的結果,總結出兩個比較好用的方法,比較簡單的需要截取的需求,在這里不再贅述,大家可自行百度。只列舉相對較難的需求,

需求是這樣的:

1.如下圖,需要在第一列中,提取出L10,L9這樣的等級,但是因為位數不固定,所以處理起來相對困難

 

 

 2.解決方法一:
百度方法:

2.1.substring_index(input,split,index):input為要截取的字符,split為分隔符,Index為要截取第index個分隔符左(index為正)或右(index為負)的字符串。

  拿個人的一個字符串舉例:'Provider="RiskManagement" finalScore="65" RGID="100397278"'      我要獲取finalScore的值:
1
2
3
4
5
-- 1-獲取finalScore右邊的字符
select substring_index('Provider="RiskManagement" finalScore="65" RGID="100397278"','finalScore="',-1);
 
-- 2-再獲取" RGID="左邊的字符
select substring_index(substring_index('Provider="RiskManagement" finalScore="65" RGID="100397278"','finalScore="',-1),'" RGID="',1);
  結果1:65" RGID="100397278"
  結果2:65
 
 2.1.1 應用:
SUBSTRING_INDEX(SUBSTRING_INDEX("字段名","L",-1),"U",1)   得到上圖中DD列結果,可以在通過concat 方法進行拼接得到想要的結果
 
 
2.2 方法二:
通過regexp_extract  方法得到
 
2.2.1 應用:
regexp_extract('字段名', 'L\\d+')   得到上圖中dd1列結果,直接就是我們想要的結果。
 
 
*感謝閱讀。喜歡的、有用的請“推薦一下”吧!歡迎轉載!
*博主水平有限,如有問題或者疑問希望大家能夠批評指出。
*我的博客:  http://www.cnblogs.com/thxx/
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM