mysql 和 oracle 实现 substr + lastIndexOf 功能

本文介绍如何在MySQL和Oracle中使用内置函数实现类似于Java的lastIndexOf和indexOf功能。在MySQL中,通过组合使用REVERSE、RIGHT和INSTR函数可以实现lastIndexOf功能;在Oracle中,利用instr函数的不同参数配置即可实现indexOf和lastIndexOf。文章提供了具体示例,展示了如何在实际场景中应用这些技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值