mysql 实现 lastIndexOf 功能
函数1:REVERSE(str)
使用说明:返回颠倒字符顺序的字符串str。
mysql> select REVERSE('abcd');
返回结果为: 'dcba'
函数2:right(str,len)
使用说明:返回字符串最右侧的 len 个字符
mysql> select right('thisismyserver', 5);
返回结果为: 'erver'
函数3:INSTR(str, substr) --- 没有三个参数,只有两个参数
使用说明:返回字符串 str 中子字符串的第一个出现位置
SELECT REVERSE('/home/videos/txe');
返回结果为: ext/soediv/emoh/
SELECT INSTR( REVERSE('/home/videos/txe'), '/' ) - 1;
返回结果为: 3
mysql 实现 lastIndexOf
SELECT RIGHT( '/home/videos/txe', INSTR(REVERSE('/home/videos/txe'), '/') - 1 );
返回结果为: txe
SELECT RIGHT( '2015-11-10', INSTR( REVERSE( '2015-11-10' ), '-' ) - 1 )
返回结果为: 10
------------------
Oracle SQL 实现 indexOf 和 lastIndexOf 功能
oracle instr()函数 / 字符查找函数:
格式一:instr( string1, string2 ) / instr(源字符串, 目标字符串)
格式二:instr( string1, string2 [, start_position [, nth_appearance ] ] ) / instr(源字符串, 目标字符串, 起始位置, 匹配序号)
instr 的第三个参数为 1 时,实现的是 indexOf 功能。
instr 的第三个参数为 -1 时,实现的是 lastIndexOf 功能。
instr( 'went_ab_ddsf', '_', -1, 1 ); // 实现 lastIndexOf
返回结果为:8
oracle 实现 substr + lastIndexOf
select substr( 'abc_def_ghi', instr( 'abc_def_ghi', '_', -1, 1 ) + 1 ) from dual
返回结果为:ghi