mysql substring_index

发布时间 2023-06-05 16:11:42作者: 郭大侠1

1.substring_index 函数的语法及其用法

(1)语法:substring_index(string,sep,num)

即substring_index(字符串,分隔符,序号)

参数说明

  string:用于截取目标字符串的字符串。可为字段,表达式等。

  sep:分隔符,string存在且用于分割的字符,比如“,”、“.”等。

  num:序号,为非0整数。若为整数则表示从左到右数,若为负数则从右到左数。

案例:

  比如“www.mysql.com”截取字符‘www’,分割符为“.”,从左到右序号为1,即substring_index("www.mysql.com",'.',1);

  若从右开始获取“com”则为序号为-1即substring_index("www.mysql.com",'.',-1)

(2)案例,获取括号内容

SUBSTRING_INDEX(SUBSTRING_INDEX(字段,‘开头条件’,-1),‘结尾条件’,1)

如下,有一数据表名为(TEST),数据表格式如下,desp的格式为固定 需要截取中间括号的内容

iddesp
1 lalalalalalallalal'(dongdongdong)'11111
2 lalalalalalallalal'(xixixixi)'11111

 

select substring_index(substring_index(desp,"(",-1),")" ,1) from TEST

 

2. mysql substring

(2.1)substring(string, position, length)

  第一个参数string指的是需要截取的原字符串。

  第二个参数position指的是从哪个位置开始截取子字符串,(需要注意的是这里字符的位置编码序号是从1开始,比如’pandas’里d的位置是4,而放到Python中为3),若position为负数则从右往左开始数位置。

  第三个参数length指的是需要截取的字符串长度,如果不写,则默认截取从position开始到最后一位的所有字符。

例:substring(‘pandas’, length(pandas)-2, 2) 的结果为 ‘da’.

(2.2)substring(string from position for length)

是一种更加规范的写法,参数含义同上所述。

同样,这里的 for length可以不写,默认从position开始截取到最后一个字符。

例:substring(‘pandas’ from 4 for 2) 的结果为 ‘da’.

(2.3)配合 instr(str,findstr)

获取字符串出现的下标值,select instr('abcd','b') 结果会是 2 。