-- mysql实现指定序数字符串位置获取
-- 字符串例子:'test_env_Log_10098',需求:获取最后的数字部分10098
-- 1.嵌套实现,比较费劲
set @chr='test_env_Log_10098';
select substr(@chr,instr(@chr,'_')+1) -- 一次一个嵌套:substr(@chr,instr(@chr,'_')+1),总共嵌套3次,费时费力
-- 2.substring_index实现
set @chr='test_env_Log_10098';
select substring_index(@chr,'_',-1)
-- 3.自定义函数实现
http://blog.csdn.net/asktommorow/article/details/52618480
【mysql常见字符处理函数总结】
substring_index(str,delim,count)
str:要处理的字符串
delim:分隔符
count:计数,负为倒数(保留计数分隔符前(+前-后)的数据)
substring(str,pos, len)
str:要处理的字符串
pos:起始位置,-N为倒数N个字符
len:截取长度,必须为整数,否则结果为NULL
-- mid(), substr() 等价于 substring()
-- instr(str,delim) delim出现在str的第一个位置
--DEMO
set @str='test_big_string';
select
left(@str,3), -- tes
right(@str,3), -- ing
substring(@str,2), -- est_big_string
substring(@str,2,3), -- est
substring(@str,-2), -- ng
substring(@str,-2,1), -- n
substring_index(@str,'_',2), -- test_big
substring_index(@str,'_',-1), -- string
instr(@str,'_') -- 5