mysql根据字符截取字符串(总结)
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)
截取结果:
1.3 截取二级目录主键
步骤一: 先根据字符'.'从左边开始第三个'.'开始截取左边的字符串:SUBSTRING_INDEX(dir_seq,'.',3) 截取结果: .341.346 步骤二: 在步骤一的截取结果再根据字符'.'从右边开始第一个'.'开始截取右边的字符串:SUBSTRING_INDEX( SUBSTRING_INDEX(dir_seq,'.',3) ,'.',-1) 截取结果:
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: 停止截取的位置(包括该位置的字符)
mysql根据字符截取字符串(总结)的更多相关文章
- Android(Java) 字符串的常用操作,获取指定字符出现的次数,根据指定字符截取字符串
/*这是第100000份数据,要截取出100000*/ String s="这是第100000份数据"; String s1 = s.substring(s.indexOf(&qu ...
- mysql函数之截取字符串
文章摘取自http://www.cnblogs.com/zdz8207/p/3765073.html 练习截取字符串函数(五个) mysql索引从1开始 一.mysql截取字符串函数 1.left(s ...
- mysql 函数substring_index() 截取字符串
函数: 1.从左开始截取字符串 left(str, length) 说明:left(被截取字段,截取长度) 例:select left(content,200) as abstract from my ...
- MySQL数据库怎么截取字符串?
函数: 1.从左开始截取字符串 left(str, length) 说明:left(被截取字段,截取长度) 例:select left(content,200) as abstract from my ...
- mysql按关键词截取字符串
按关键字截取字符串 :substring_index(被截取字段,关键字,关键字出现的次数) eg:字符串:test.docx:test2.zip substring_index(file_name, ...
- 关于MySQL utf8mb4 字符集中字符串长度的问题
MySQL之前推出的utf8字符集中,一个汉字占3个字节,新的utf8mb4字符集中一个汉字占4个字节. 那么我们平时建表的时候输入的varchar=16这种,到底指的是字符长度还是字节长度? 如果是 ...
- Oracle以固定字符截取字符串
CREATE OR REPLACE FUNCTION "F_SPLIT" (p_str IN CLOB, p_delimiter IN VARCHAR2) RETURN ty_st ...
- Oracle中按规定的字符截取字符串
CREATE OR REPLACE FUNCTION "F_SPLIT" (p_str IN CLOB, p_delimiter IN VARCHAR2) RETURN ty_st ...
- python按照指定字符或者长度 截取字符串
1.截取指定位置字符串 Python字符串可以理解为一个数组,获取某一部分的可以使用 str[beginIndex:endPosition],其中str为需要截取的字符串,beginIndex为需要截 ...
随机推荐
- 计算机网络基础——OSI七层网络模型
计算机网络基础——OSI七层网络模型 OSI的是什么: 开放式系统互联通信参考模型(英语:Open System Interconnection Reference Model,缩写为 OSI),简称 ...
- .Net 入门资料推荐 (编辑中)
1.首先推荐 网易云课堂上的一个付费课程:常老师带你学ASP.NET MVC ,价格199元 2. 一个.net的框架,ABP,中文介绍如下 http://www.cnblogs.com/farb/p ...
- computed计算属性
在computed中,可以定义一些属性,这些属性 叫做计算属性.计算属性的本质是一个方法,只不过我们在使用的时候,把他们的名称当做属性来使用,并不会吧计算属性当做方法去调用.与methods平级. / ...
- 错误: Cause: java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for studentDao.insert
详细错误信息: org.apache.ibatis.exceptions.PersistenceException: ### Error updating database. Cause: java. ...
- 为什么阿里巴巴禁止在 foreach 循环里进行元素的 remove/add 操作--java.util.ConcurrentModificationException
摘要 foreach循环(Foreach loop)是计算机编程语言中的一种控制流程语句,通常用来循环遍历数组或集合中的元素. 在阿里巴巴Java开发手册中,有这样一条规定: 但是手册中并没有给出具体 ...
- 抓取某网站信息时遇到的问题及解决 The character set provided in ContentType is invalid. Cannot read content as string using an invalid character set
var response = httpClient.SendAsync(requestMessage).Result; content = response.Content.ReadAsStringA ...
- Django by example -----1总结
根据django by example 完成了第一个例子,总结如下. 第一: django的orm真的很方便,避免了sql语句的使用,你所需要的,django基本都已经封装好了,一些字段很有意思. 第 ...
- HDU - 6054 sa + 树状数组套线段树
因为强制在线所以只能转成序列上的问题然后树套树了... #include<bits/stdc++.h> #define LL long long #define LD long doubl ...
- nltk 词性解析
转载链接: https://blog.csdn.net/pengjian444/article/details/81143983
- 将Map中的参数封装为XML
public String packageYDImageUploadXML(String versionCode, Map parmsMap) throws ParseException { Docu ...