欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Mysql中用substring_index提取字符内容

程序员文章站 2022-05-08 09:30:50
单字符分割实际工作过程中,有很多字符串都是不规范的,例如蛋蛋-12345678901假设这是一个姓名-电话结构类型的字符,我们只需要提取其中的部分内容,就需要用到substring_index函数.提取姓名也就是提取A-B字符的前半部分mysql> select substring_index('蛋蛋-12345678901','-',1);+-------------------------------------------+| substring_index('蛋蛋-123...

单字符分割

实际工作过程中,有很多字符串都是不规范的,例如

蛋蛋-12345678901

假设这是一个姓名-电话结构类型的字符,我们只需要提取其中的部分内容,就需要用到substring_index函数.

提取姓名

也就是提取A-B字符的前半部分

mysql> select substring_index('蛋蛋-12345678901','-',1);

+-------------------------------------------+
| substring_index('蛋蛋-12345678901','-',1)  |
+-------------------------------------------+
| 蛋蛋                                       |
+-------------------------------------------+
1 row in set (0.07 sec)

提取电话

也就是提取A-B字符的后半部分

mysql> select substring_index('蛋蛋-12345678901','-',-1);

+--------------------------------------------+
| substring_index('蛋蛋-12345678901','-',-1)  |
+--------------------------------------------+
| 12345678901                                |
+--------------------------------------------+
1 row in set (0.07 sec)

可以看出

  • 1是从左往右,去掉第1个字符及后面的内容
  • -1是从右往左,去掉第1个字符及后面的内容

多字符分割

根据这个规律,我们可以进行多字符提取.这时候假设字符串是这样的

蛋蛋-12345678901-广州

类似于这种姓名-电话-广州结构类型的字符,我们可以改变第3个参数来取值

提取姓名

也就是提取A-B-C字符的的第一部分

mysql> select substring_index('蛋蛋-12345678901-广州','-',1);

+------------------------------------------------+
| substring_index('蛋蛋-12345678901-广州','-',1)  |
+------------------------------------------------+
| 蛋蛋                                            |
+------------------------------------------------+
1 row in set (0.09 sec)

也就是后面无论有多少个相同的字符,去掉第一个和之后的就可以了

提取城市

也就是提取A-B-C字符的的最末部分

mysql> select substring_index('蛋蛋-12345678901-广州','-',-1);

+-------------------------------------------------+
| substring_index('蛋蛋-12345678901-广州','-',-1)  |
+-------------------------------------------------+
| 广州                                             |
+-------------------------------------------------+
1 row in set (0.08 sec)

提取电话

也就是提取A-B-C字符的的中间部分

mysql> select substring_index(substring_index('蛋蛋-12345678901-广州','-',2),'-',-1);

+------------------------------------------------------------------------+
| substring_index(substring_index('蛋蛋-12345678901-广州','-',2),'-',-1)  |
+------------------------------------------------------------------------+
| 12345678901                                                            |
+------------------------------------------------------------------------+
1 row in set (0.11 sec)

Mysql中用substring_index提取字符内容

本文地址:https://blog.csdn.net/sinat_41870148/article/details/109004876