Mysql字符串截取及获取指定字符串中的数据
前言:本人遇到一个需求,需要在MySql的字段中截取一段字符串中的特定字符,类似于正则表达式的截取,苦于没有合适的方法,百度之后终于找到一个合适的方法:substring_index('.sqlstudy..', '.', -2)
强烈推荐该方法获取含有特定字符的数据。
substring_index(input,split,index):input为要截取的字符,split为分隔符,Index为要截取第index个分隔符左(index为正)或右(index为负)的字符串。
拿个人的一个字符串举例:'Provider="RiskManagement" finalScore="65" RGID="100397278"' 我要获取finalScore的值:
-- 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
MySQL 字符串截取函数:left(), right(), substring(), substring_index()。还有 mid(), substr()。其中,mid(), substr() 等价于 substring() 函数,substring() 的功能非常强大和灵活。
1. 字符串截取:left(str, length)
mysql> select left('sqlstudy.', 3); +-------------------------+ | left('sqlstudy.', 3) | +-------------------------+ | sql | +-------------------------+
2. 字符串截取:right(str, length)
mysql> select right('sqlstudy.', 3); +--------------------------+ | right('sqlstudy.', 3) | +--------------------------+ | | +--------------------------+
3. 字符串截取:substring(str, pos); substring(str, pos, len)
3.1 从字符串的第 4 个字符位置开始取,直到结束。
mysql> select substring('sqlstudy.', 4); +------------------------------+ | substring('sqlstudy.', 4) | +------------------------------+ | study. | +------------------------------+
3.2 从字符串的第 4 个字符位置开始取,只取 2 个字符。
mysql> select substring('sqlstudy.', 4, 2); +---------------------------------+ | substring('sqlstudy.', 4, 2) | +---------------------------------+ | st | +---------------------------------+
3.3 从字符串的第 4 个字符位置(倒数)开始取,直到结束。
mysql> select substring('sqlstudy.', -4); +-------------------------------+ | substring('sqlstudy.', -4) | +-------------------------------+ | . | +-------------------------------+
3.4 从字符串的第 4 个字符位置(倒数)开始取,只取 2 个字符。
mysql> select substring('sqlstudy.', -4, 2); +----------------------------------+ | substring('sqlstudy.', -4, 2) | +----------------------------------+ | .c | +----------------------------------+
我们注意到在函数 substring(str,pos, len)中, pos 可以是负值,但 len 不能取负值。
4. 字符串截取:substring_index(str,delim,count)
4.1 截取第二个 '.' 之前的所有字符。
mysql> select substring_index('.sqlstudy..', '.', 2); +------------------------------------------------+ | substring_index('.sqlstudy..', '.', 2) | +------------------------------------------------+ | .sqlstudy | +------------------------------------------------+
4.2 截取第二个 '.' (倒数)之后的所有字符。
mysql> select substring_index('.sqlstudy..', '.', -2); +-------------------------------------------------+ | substring_index('.sqlstudy..', '.', -2) | +-------------------------------------------------+ | . | +-------------------------------------------------+
4.3 如果在字符串中找不到 delim 参数指定的值,就返回整个字符串
mysql> select substring_index('.sqlstudy..', '.coc', 1); +---------------------------------------------------+ | substring_index('.sqlstudy..', '.coc', 1) | +---------------------------------------------------+ | .sqlstudy.. | +---------------------------------------------------+
4.4 截取一个表某个字段数据的中间值 如该字段数据为 1,2,3
mysql> select substring_index(substring_index(该字段, ',', 2) , ',', -1) from 表名; +--------------------------------------------------------------+ | substring_index(substring_index(该字段, ',', 2); , ',', -1)| +--------------------------------------------------------------+ | 2 | +--------------------------------------------------------------+
总结
以上所述是长沙网络推广给大家介绍的Mysql字符串截取及获取指定字符串中的数据,希望对大家有所帮助,如果大家有任何疑问请给我留言,长沙网络推广会及时回复大家的。在此也非常感谢大家对狼蚁SEO网站的支持!
如果你觉得本文对你有帮助,欢迎网络推广网站推广转载,烦请注明出处,谢谢!
编程语言
- 机械手焊接机器人编程 机械手焊接设备编程
- vb数据库编程实例,vb做数据库
- tiobe世界编程语言排行榜,全球编程语言排行
- 成都java编程培训 成都it编程培训中心
- 编程基础培训,编程基础知识培训
- flash游戏编程基础教程,flash游戏开发教程
- 不会英语能学编程吗 不会英语可以学程序员吗
- 爱心代码编程C语言 爱心代码编程c语言公式
- c语言编程学习入门 c语言编程快速入门
- 西门子plc编程培训 西门子plc编程培训班
- 哪里可以学编程 台州哪里可以学编程
- 少儿编程哪个好 少儿编程哪个品牌好
- 编程是什么意思,图形编程是什么意思
- c语言编程软件下载,c语言编程软件在哪下载
- java编程软件下载,java编程下载手机版
- ug编程培训学校,ug编程培训教程