mysql根据字符截取字符串
2023-07-27 12:31 皖医小生 阅读(175) 评论(0) 编辑 收藏 举报mysql根据字符截取字符串(总结)
1.1 前言
SUBSTRING_INDEX
1.2 需要实现的实际需求
如下表为文档目录表,其中关键字段dir_seq为目录层级索引,dir_name为目录名称。假设现在我们获取到dir_seq值为 .341.346.347.348. ,现在我们想获取到各级别的目录主键。
1.3 截取一级目录主键
步骤一:
SUBSTRING_INDEX(dir_seq,'.',2)
截取结果: .341
步骤二:
SUBSTRING_INDEX( SUBSTRING_INDEX(dir_seq,'.',2) ,'.',-1)
截取结果: 341
1.3 截取二级目录主键
步骤一:
先根据字符'.'从左边开始第三个'.'开始截取左边的字符串:SUBSTRING_INDEX(dir_seq,'.',3)
截取结果: .341.346
步骤二:
在步骤一的截取结果再根据字符'.'从右边开始第一个'.'开始截取右边的字符串:SUBSTRING_INDEX( SUBSTRING_INDEX(dir_seq,'.',3) ,'.',-1)
截取结果: 346
select SUBSTRING_INDEX(SUBSTRING_INDEX(' .341.346.347.348. ','.',3),'.',-1) from dual;
1.4 截取三级目录主键,其实从上面两个例子已经看出规律,先从左截取三级目录id所在的位置,再从右截取第一个'.'的位置。。。
1.5 mysql相关字符串截取的函数详解:
SUBSTRING_INDEX(subStr, matchStr, index)
根据匹配的字符以及出现的位置开始截取字符串
subStr: 需要截取的字段
matchStr: 匹配的字符
index: 从第几个匹配的字符,为正数时从左边开始查找并向左截取,为负数时从右边开始查找并向右截取
LEFT(subStr,index)
从左边开始向右截取,截至第index位(index从1开始)
subStr: 需要截取的字段
index: 停止截取的位置(包括该位置的字符)
RIGHT(subStr,index)
从右边开始向左截取,截至从右边开始数第index位(index从1开始)
subStr: 需要截取的字段
index: 停止截取的位置(包括该位置的字符)
SUBSTRING(subStr, index)
当index为负数时,从右边开始向左截取,截至从右边开始数第index位
当index为正数时,从左边开始向右截取,截至从左边开始数第index位
subStr: 需要截取的字段
index: 停止截取的位置(包括该位置的字符)
转发来源https://blog.51cto.com/u_16099231/6514271
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!