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)
本文地址:https://blog.csdn.net/sinat_41870148/article/details/109004876
上一篇: MySQL5.5从零开始学例题和综合案例
下一篇: MySQL中一条查询是如何执行的