Mysql字符串截取及获取指定字符串中的数据

作者:深入学习ing 时间:2024-01-24 21:07:46 

前言:本人遇到一个需求,需要在MySql的字段中截取一段字符串中的特定字符,类似于正则表达式的截取,苦于没有合适的方法,百度之后终于找到一个合适的方法:substring_index('www.sqlstudy.com.cn', '.', -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.com', 3);
+-------------------------+
| left('sqlstudy.com', 3) |
+-------------------------+
| sql |
+-------------------------+

2. 字符串截取:right(str, length)


mysql> select right('sqlstudy.com', 3);
+--------------------------+
| right('sqlstudy.com', 3) |
+--------------------------+
| com |
+--------------------------+

3. 字符串截取:substring(str, pos); substring(str, pos, len)

3.1 从字符串的第 4 个字符位置开始取,直到结束。


mysql> select substring('sqlstudy.com', 4);
+------------------------------+
| substring('sqlstudy.com', 4) |
+------------------------------+
| study.com |
+------------------------------+

3.2 从字符串的第 4 个字符位置开始取,只取 2 个字符。


mysql> select substring('sqlstudy.com', 4, 2);
+---------------------------------+
| substring('sqlstudy.com', 4, 2) |
+---------------------------------+
| st |
+---------------------------------+

3.3 从字符串的第 4 个字符位置(倒数)开始取,直到结束。


mysql> select substring('sqlstudy.com', -4);
+-------------------------------+
| substring('sqlstudy.com', -4) |
+-------------------------------+
| .com |
+-------------------------------+

3.4 从字符串的第 4 个字符位置(倒数)开始取,只取 2 个字符。


mysql> select substring('sqlstudy.com', -4, 2);
+----------------------------------+
| substring('sqlstudy.com', -4, 2) |
+----------------------------------+
| .c |
+----------------------------------+

我们注意到在函数 substring(str,pos, len)中, pos 可以是负值,但 len 不能取负值。

4. 字符串截取:substring_index(str,delim,count)

4.1 截取第二个 '.' 之前的所有字符。


mysql> select substring_index('www.sqlstudy.com.cn', '.', 2);
+------------------------------------------------+
| substring_index('www.sqlstudy.com.cn', '.', 2) |
+------------------------------------------------+
| www.sqlstudy |
+------------------------------------------------+

4.2 截取第二个 '.' (倒数)之后的所有字符。


mysql> select substring_index('www.sqlstudy.com.cn', '.', -2);
+-------------------------------------------------+
| substring_index('www.sqlstudy.com.cn', '.', -2) |
+-------------------------------------------------+
| com.cn |
+-------------------------------------------------+

4.3 如果在字符串中找不到 delim 参数指定的值,就返回整个字符串


mysql> select substring_index('www.sqlstudy.com.cn', '.coc', 1);
+---------------------------------------------------+
| substring_index('www.sqlstudy.com.cn', '.coc', 1) |
+---------------------------------------------------+
| www.sqlstudy.com.cn |
+---------------------------------------------------+

4.4 截取一个表某个字段数据的中间值 如该字段数据为 1,2,3


mysql> select substring_index(substring_index(该字段, ',', 2) , ',', -1) from 表名;
+--------------------------------------------------------------+
| substring_index(substring_index(该字段, ',', 2); , ',', -1)|
+--------------------------------------------------------------+
| 2 |
+--------------------------------------------------------------+

总结

以上所述是小编给大家介绍的Mysql字符串截取及获取指定字符串中的数据,网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

来源:https://www.cnblogs.com/lxhbky/archive/2019/11/01/11775924.html

标签:mysql,字符串,数据,截取
0
投稿

猜你喜欢

  • Python将Excel表格按某列拆分为多个sheet实现过程

    2021-06-11 06:59:54
  • GoFrame通用类型变量gvar与interface基本使用对比

    2024-04-27 15:26:26
  • Django后台admin的使用详解

    2023-11-21 14:57:50
  • django框架F&Q 聚合与分组操作示例

    2021-05-21 02:13:56
  • Mysql误删数据解决方案及kill语句原理

    2024-01-26 20:22:15
  • 一文带你掌握Python中多线程和线程池的使用方法

    2022-10-20 21:53:09
  • Python map和reduce函数用法示例

    2022-06-21 09:02:25
  • python上下文管理器协议的实现

    2023-08-28 18:32:18
  • 基于Python pyecharts实现多种图例代码解析

    2021-11-10 05:20:17
  • python文字和unicode/ascll相互转换函数及简单加密解密实现代码

    2023-08-23 08:13:59
  • tensorflow之自定义神经网络层实例

    2022-05-26 07:05:27
  • Python中的默认参数实例分析

    2023-02-20 20:19:38
  • python实现二叉树的遍历

    2023-06-29 17:45:42
  • ajax的缺点

    2007-11-08 12:51:00
  • 九宫格基本布局

    2009-06-18 18:36:00
  • Oracle数据库对象的使用详解

    2024-01-28 16:38:30
  • 使用cx_freeze把python打包exe示例

    2021-06-10 05:36:20
  • 如何调用Oracle存储过程?

    2009-11-15 20:13:00
  • 纯CSS在Firefox模拟text-overflow: ellipsis效果

    2009-03-17 12:49:00
  • Python如何用filter函数筛选数据

    2022-07-23 21:20:14
  • asp之家 网络编程 m.aspxhome.com