mysql substring_index
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的格式为固定 需要截取中间括号的内容
id | desp |
---|---|
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 。