栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

MySQL切分函数substring()---大家务必要get到这些点

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

MySQL切分函数substring()---大家务必要get到这些点

例如,从“www.csdn.net”字符串中获取子字符串:“csdn.net”,子串的位置必须从5开始,如以下SELECt语句:

mysql> SELECT substring(‘www.csdn.net’,5) from web_info w;
±----------------------------+
| substring(‘www.csdn.net’,5) |
±----------------------------+
| csdn.net |
±----------------------------+
1 row in set (0.00 sec)

2.SUBSTRINg(string,position,length)

除了string和position参数之外,SUBSTRING函数还有一个length参数。length是一个正整数,用于指定子字符串的字符数。如果length<=0,那么会返回空字符串。

例如,获取www.csdn.net中的csdn,SQL如下:

mysql> SELECt substring(‘www.csdn.net’,5,4) from web_info w;
±------------------------------+
| substring(‘www.csdn.net’,5,4) |
±------------------------------+
| csdn |
±------------------------------+
1 row in set (0.00 sec)

或者通过配置position,从后往前数;SQL如下:

mysql> SELECt substring(‘www.csdn.net’,-8,4) from web_info w;
±-------------------------------+
| substring(‘www.csdn.net’,-8,4) |
±-------------------------------+
| csdn |
±-------------------------------+
1 row in set (0.00 sec)

又或者通过SQL标准方式来写,SQL如下:

mysql> SELECt substring(‘www.csdn.net’ FROM 5 FOR 4) from web_info w;
±---------------------------------------+
| substring(‘www.csdn.net’ FROM 5 FOR 4) |
±---------------------------------------+
| csdn |
±---------------------------------------+
1 row in set (0.00 sec)

另外,MySQL中的 mid(), substr() 等价于 substring() 函数哦!

四、SUBSTRING_INDEX() 函数

SUBSTRING_INDEX(str,delim,count),是一个通过特定标识符"delim"来截取子串的函数,我们日常使用频率是很高的;

  • delim:通过该标识符来进行截取的,delim可以为任意字符,不要为空;
  • count:代表第几次出现;count为正数,代表取标识符出现第count次之前的子串;负数则相反,取标识符出现第count次之后的子串。

例如:‘www.csdn.net’,获取第一次出现标识符’.'前面的子串,SQL如下;

mysql> SELECt SUBSTRING_INDEX(‘www.csdn.net’,’.’,1) from web_info w;
±--------------------------------------+
| SUBSTRING_INDEX(‘www.csdn.net’,’.’,1) |
±--------------------------------------+
| www |
±--------------------------------------+
1 row in set (0.00 sec)

获取第一次出现标识符’.'后面的子串,SQL如下;

mysql> SELECt SUBSTRING_INDEX(‘www.csdn.net’,’.’,-2) from web_info w;
±---------------------------------------+
| SUBSTRING_INDEX(‘www.csdn.net’,’.’,-2) |
±---------------------------------------+
| csdn.net |
±---------------------------------------+
1 row in set (0.00 sec)

想获取两个’.'中间的呢?可以嵌套一下,SQL如下;

mysql> SELECt SUBSTRING_INDEX(substring_index(‘www.csdn.net’,’.’,2),’.’,-1) from web_info w;
±--------------------------------------------------------------+
| SUBSTRING_INDEX(substring_index(‘www.csdn.net’,’.’,2),’.’,-1) |
±--------------------------------------------------------------+
| csdn |
±--------------------------------------------------------------+
1 row in set (0.00 sec)

产品:emmm…那如果我想o_O o_O
程序员:不,你不想!

五、实战操作

我们以表web_info为测试表,数据如下;

mysql> select * from web_info;
±-----±-------±---------------±--------------------+
| w_id | w_name | w_domain | pub_time |
±-----±-------±---------------±--------------------+
| 1 | CSDN | www.csdn.net | 2020-09-03 11:29:29 |
| 5 | 百度 | www.baidu.com | 2020-09-18 14:37:38 |
| 6 | 淘宝 | www.taobao.com | 2020-09-03 14

【一线大厂Java面试题解析+核心总结学习笔记+最新架构讲解视频+实战项目源码讲义】

浏览器打开:qq.cn.hn/FTf 免费领取

:37:57 |
±-----±-------±---------------±--------------------+
3 rows in set (0.00 sec)

需求1:获取web_info数据的一级域名;
注:这里仅用于举例说明,与实际会有些出入,如.com.cn那种多级后缀就需另外处理。

mysql> SELECt SUBSTRING_INDEX(w_domain,’.’,-2),w.* from web_info w;
±---------------------------------±-----±-------±---------------±--------------------+
| SUBSTRING_INDEX(w_domain,’.’,-2) | w_id | w_name | w_domain | pub_time |
±---------------------------------±-----±-------±---------------±--------------------+
| csdn.net | 1 | CSDN | www.csdn.net | 2020-09-03 11:29:29 |
| baidu.com | 5 | 百度 | www.baidu.com | 2020-09-18 14:37:38 |
| taobao.com | 6 | 淘宝 | www.taobao.com | 2020-09-03 14:37:57 |
±---------------------------------±-----±-------±---------------±--------------------+
3 rows in set (0.00 sec)

om | 2020-09-03 14:37:57 |
±---------------------------------±-----±-------±---------------±--------------------+
3 rows in set (0.00 sec)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/356901.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号