MySQL 字符串截取函数 SUBSTRING_INDEX

例子:

select
  SUBSTRING_INDEX(thumbnail,'/',-1) as file_name,
  thumbnail,
  SUBSTRING_INDEX(thumbnail,'.',-1) as suffix,
from tb_article where thumbnail != '';


介绍:

这里用到 MySQL 的 SUBSTRING_INDEX(str,delim,count) 函数,LENGTH(str) 函数,REPLACE(str,from_str,to_str) 函数,和数据库的一张辅助表help_topic(这张表在默认的mysql库里)。


SUBSTRING_INDEX(str,delim,count) 函数

参数:

str: 要分割的字符串

delim: 分割符(比如逗号,和点.)

count: 计数(分割到第几个),正数表示从左向右数,负数表示从右向左数


举例:

SELECT SUBSTRING_INDEX('www.baidu.com','.',1); -- 得到www
SELECT SUBSTRING_INDEX('www.baidu.com','.',2); -- 得到www.baidu
SELECT SUBSTRING_INDEX('www.baidu.com','.',-1); -- 得到com
SELECT SUBSTRING_INDEX('www.baidu.com','.',-2); -- 得到baidu.com

想要得到中间的baidu怎么办?这个要取两次才能得到的,第一次从右向左取,如上例子得到baidu.com,第二次将第一次的结果从左向右取,即可得到中间的字符baidu。

SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('www.baidu.com','.',-2),'.',1); -- 得到baidu


有了这个函数的帮助,还需要确定什么呢?需要确定,当前要分割的位置。

如何来获取当前要分割的位置呢?可以先获取总共能拆分成多少个字符串:

SELECT LENGTH('192.168.211.35'); -- 得到长度是14


LENGTH(str)函数

LENGTH(str) – MYSQL的LENGTH(str)函数,统计字符串的长度


REPLACE(str,from_str,to_str)函数

REPLACE(str,from_str,to_str) – MYSQL的REPLACE(str,from_str,to_str)函数,意思是替换字符串,用to_str替换from_str得到最终的str


参数:

str:最终得到的字符串

from_str: 旧的字符(被替换的字符)

to_str: 新的字符


结果就是用新的字符替换旧的字符,得到的最终的字符串

SELECT REPLACE('192.168.211.35','.',''); -- 得到19216821135
SELECT LENGTH(REPLACE('192.168.211.35','.','')); -- 得到长度是11

最终呢,SELECT LENGTH('192.168.211.35') - LENGTH(REPLACE('192.168.211.35', ',', '')) + 1; -- 得到长度是4

那么其实我们想要的就是遍历前三个,分别获取当前位置的字符串:

SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('192.168.211.35',',', index), ',', -1)


修改时间 2022-11-27

声明:本站所有文章,如无特殊说明或,均为原创发布。商业转载请联系作者获得授权,非商业转载请注明出处。本站所有图片如无特殊说明均为AI生成。
真诚赞赏,手留余香
赞赏
JavaScript
JavaScript 中的数据类型自动转换为 Boolean 状态
2022-11-04
前端开发,前端
p 标签里面不能嵌套块级元素
2022-11-05
Jone
在什么样的花园里面,挖呀挖呀挖
种什么样的种子,开什么样的花
随机推荐
MySQL 删除逗号分隔字段中的某一个值
CRSF 跨站脚本攻击已死,使用 Same-Site Cookies 来防范 CSRF
MySQL 使用 DATE_FORMAT() 和 FROM_UNIXTIME() 格式化时间
用 JavaScript 实现数字增加滚动动画
Node.js 使用 Jest 做单元测试
MySQL 数据库中货币单位如何存储
数据库中间表应该如何命名
MySQL DATETIME 时间查询和转换
uni-app 实现暗黑模式/夜间模式/深色模式/暗黑主题(DarkMode)的几种方法
如何调整 iconfont 图标的位置和基线

微信联系我

夜间模式切换
回到顶部