mysql根据字符截取字符串(总结)

mysql根据字符截取字符串(总结)

1.1 前言

    为结合自己平常查资料的习惯,我会先给出例子,然后再对相关知识进行详解。该案例使用到的函数为:SUBSTRING_INDEX

1.2 需要实现的实际需求

  1. 如下表为文档目录表,其中关键字段dir_seq为目录层级索引,dir_name为目录名称。假设现在我们获取到dir_seq值为 .341.346.347.348. ,现在我们想获取到各级别的目录主键。

1.3 截取一级目录主键

  1. 步骤一:

          先根据字符‘.‘从左边开始第二个‘.‘开始截取左边的字符串:SUBSTRING_INDEX(dir_seq,‘.‘,2)

    截取结果:  .341

    步骤二:

    在步骤一的截取结果再根据字符‘.‘从右边开始第一个‘.‘开始截取右边的字符串:SUBSTRING_INDEX( SUBSTRING_INDEX(dir_seq,‘.‘,2) ,‘.‘,-1)

    截取结果:  341

1.3 截取二级目录主键

  1. 步骤一:
    
          先根据字符‘.‘从左边开始第三个‘.‘开始截取左边的字符串:SUBSTRING_INDEX(dir_seq,‘.‘,3)
    
           截取结果:  .341.346
    
    步骤二:
    
           在步骤一的截取结果再根据字符‘.‘从右边开始第一个‘.‘开始截取右边的字符串:SUBSTRING_INDEX( SUBSTRING_INDEX(dir_seq,‘.‘,3) ,‘.‘,-1)
    
           截取结果:  346

1.4 截取三级目录主键,其实从上面两个例子已经看出规律,先从左截取三级目录id所在的位置,再从右截取第一个‘.‘的位置。。。

1.5 mysql相关字符串截取的函数详解:

  1. SUBSTRING_INDEX(subStr, matchStr, index)

    根据匹配的字符以及出现的位置开始截取字符串subStr:    需要截取的字段matchStr:  匹配的字符index:     从第几个匹配的字符,为正数时从左边开始查找并向左截取,为负数时从右边开始查找并向右截取
  2. LEFT(subStr,index)

    从左边开始向右截取,截至第index位(index从1开始)subStr:    需要截取的字段index:     停止截取的位置(包括该位置的字符)
  3. RIGHT(subStr,index)
    从右边开始向左截取,截至从右边开始数第index位(index从1开始)subStr:    需要截取的字段index:     停止截取的位置(包括该位置的字符)
  4. SUBSTRING(subStr,  index)

    当index为负数时,从右边开始向左截取,截至从右边开始数第index位当index为正数时,从左边开始向右截取,截至从左边开始数第index位subStr:    需要截取的字段index:     停止截取的位置(包括该位置的字符)

原文地址:https://www.cnblogs.com/tanshaoxiaoji/p/mysql_substring.html

时间: 2024-11-08 07:01:23

mysql根据字符截取字符串(总结)的相关文章

mysql 函数substring_index() 截取字符串

函数: 1.从左开始截取字符串 left(str, length) 说明:left(被截取字段,截取长度) 例:select left(content,200) as abstract from my_content_t 2.从右开始截取字符串 right(str, length) 说明:right(被截取字段,截取长度) 例:select right(content,200) as abstract from my_content_t 3.截取字符串 substring(str, pos) s

python按照指定字符或者长度 截取字符串

1.截取指定位置字符串 Python字符串可以理解为一个数组,获取某一部分的可以使用 str[beginIndex:endPosition],其中str为需要截取的字符串,beginIndex为需要截取的第一个字符的下标,endPosition为截取字符最后一个的位置,注意是下标和位置(下面示例),下标+1=位置:beginIndex,endPosition都可以不写,不写的情况默认第一个或者最后一个: 正常示例: a = "Hello" print "a[1:4] 输出结果

mysql截取字符串与reverse函数

mysql的函数大全: http://www.jb51.net/Special/606.htm 这个网页上很多知识点,可以学习下,关于mysql的函数,也可以作为API查询: 这里只说下mysql的截取函数和reverse函数: MySQL 字符串截取函数:left(), right(), substring(), substring_index().还有 mid(), substr().其中,mid(), substr() 等价于 substring() 函数,substring() 的功能非

js如何截取字符串右边指定长度的字符

js如何截取字符串右边指定长度的字符:通常情况下都从字符串的左边开始截取字符串,下面介绍一下如何从字符串的右边截取字符串.代码如下: String.prototype.right=function(length_) { var _from=this.length-length_; if(_from<0) _from=0; return this.substring(this.length - length_,this.length); } var str="antzone"; c

Excel怎样从一串字符中的某个指定“字符”前后截取字符及截取字符串常用函数

怎么样可以从一串字符中的某个指定位置的前或后截取指定个数的字符. 如:12345.6789,我要截取小数点前(或后)的3个字符.怎么样操作, 另外,怎么样从右边截取字符,就是和left()函数相反的那个功能. =find(".",a2)返回在数字中字符(小数点)的位置. 具体公式如下:字符(小数点)前三位=MID(A2,FIND(".",A2)-3,3) 字符(小数点)后三个=MID(A2,FIND(".",A2)+1,3) 字符(小数点)前面的

【字符串】 - 判断是否包含相应的字符 - 截取某一部分字符

**********判断是否包含相应的字符************************************ NSSting *str = @"jack"; NSSring *mStr = @"a"; if ([str rangeOfString: mStr].location != NSNotFound) { NSLog(@"字符串包含a"); } //rangeOfString 前面的参数是要被搜索的字符串,后面的是要搜索的字符    

PHP截取字符串,获取长度,获取字符位置的函数

strstr(string,string) = strchr(,) //从前面第一次出现某个字符串的地方截取到最后strrchr(string,string) //从某个字符串从最后出现的位置截取到结尾strpos(string,string[,int]) //某个字符串第一次出现的位置strrpos(string,string) //某个字符串最后一次出现的位置substr(string,int[,int]) //从指定位置开始截取字符串,可以指定截取的长度.strlen(string) //

js字符串长度计算(一个汉字==两个字符)和字符串截取

js字符串长度计算(一个汉字==两个字符)和字符串截取 String.prototype.realLength = function() { return this.replace(/[^\x00-\xff]/g, "**").length; // [^\x00-\xff] - 匹配非双字节的字符 }; String.prototype.realSubstring = function(n){ var str = this||''; if(this.realLength()<=n

mysql截取字符串

mysql 字符串截取1.从左开始截取字符串left(str,length)被截取字段,截取长度select left('admin1213',5) from table 2.从右开始截取字符串right(str,length)被截取字段,截取长度select right('admin1213',5) from table3.截取字符串substring(str,pos)被截取字段,从第几位截取select substring('admin1213',5) from table substrin