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