Mysql字符串截取总结:left()、right()、substring()、substring_index()

在实际的项目开发中有时会有对数据库某字段截取部分的需求,这种场景有时直接通过数据库操作来实现比通过代码实现要更方便快捷些,mysql有很多字符串函数可以用来处理这些需求,如Mysql字符串截取总结:left()、right()、substring()、substring_index()。

一.从开始截取字符串

用法:left(str, length),即:left(被截取字符串, 截取长度)

SELECT LEFT('www.yuanrengu.com',8)

结果为:www.yuan

二.从开始截取字符串

用法:right(str, length),即:right(被截取字符串, 截取长度)

SELECT RIGHT('www.yuanrengu.com',6)

结果为:gu.com

三.截取特定长度的字符串

用法:

  • substring(str, pos),即:substring(被截取字符串, 从第几位开始截取)
  • substring(str, pos, length),即:substring(被截取字符串,从第几位开始截取,截取长度)

1.从字符串的第9个字符开始读取直至结束

SELECT SUBSTRING('www.yuanrengu.com', 9)

结果为:rengu.com

2.从字符串的第9个字符开始,只取3个字符

SELECT SUBSTRING('www.yuanrengu.com', 9, 3)

结果为:ren

3.从字符串的倒数第6个字符开始读取直至结束

SELECT SUBSTRING('www.yuanrengu.com', -6)

结果为:gu.com

4.从字符串的倒数第6个字符开始读取,只取2个字符

SELECT SUBSTRING('www.yuanrengu.com', -6, 2)

结果为:gu

四.按关键字进行读取

用法:substring_index(str, delim, count),即:substring_index(被截取字符串,关键字,关键字出现的次数)

1.截取第二个“.”之的所有字符

SELECT SUBSTRING_INDEX('www.yuanrengu.com', '.', 2);

结果为:www.yuanrengu

2.截取倒数第二个“.”之的所有字符

SELECT SUBSTRING_INDEX('www.yuanrengu.com', '.', -2);

结果为:yuanrengu.com

3.如果关键字不存在,则返回整个字符串

SELECT SUBSTRING_INDEX('www.yuanrengu.com', 'sprite', 1);

结果为:www.yuanrengu.com

4. locate函数可以实现类似indexof的功能,locate(substr,str)返回substr子串在字符串str中的位置

mysql> select LOCATE('_',area_code),area_code,substring_index(area_code,'_',1),substring(area_code,1,LOCATE('_',area_code)-1) from rtb_report_area where id<348;
+-----------------------+---------------------+----------------------------------+------------------------------------------------+
| LOCATE('_',area_code) | area_code           | substring_index(area_code,'_',1) | substring(area_code,1,LOCATE('_',area_code)-1) |
+-----------------------+---------------------+----------------------------------+------------------------------------------------+
|                     6 | cn024_0415_[ln_dd]  | cn024                            | cn024                                          |
|                     6 | cn024_0417_[ln_yk]  | cn024                            | cn024                                          |
|                     6 | cn025_0518_[js_lyg] | cn025                            | cn025                                          |
|                     7 | cn0311_0314_[hb_cd] | cn0311                           | cn0311                                         |
|                     7 | cn0551_0559_[ah_hs] | cn0551                           | cn0551                                         |
|                     6 | cn028_0826_[sc_ga]  | cn028                            | cn028                                          |
+-----------------------+---------------------+----------------------------------+------------------------------------------------+
--------------------- 

 

转载于:https://www.cnblogs.com/heyonggang/p/8117754.html

https://blog.csdn.net/liuxiao723846/article/details/50341821.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值