Oracle FIND_IN_SET函数

本文介绍了在Oracle数据库中遇到的一个需求,需要检索由ID拼接成字符串的列,并确保只返回包含特定ID的数据。由于Oracle 12c不支持MySQL的FIND_IN_SET函数,作者通过查阅资料和前辈的经验,找到了一个类似的功能实现。文章提供了函数的具体实现,并提醒在使用时注意目标字段的分隔符问题。

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

最近笔者遇到一个需求。在数据库中有下方表格所示类型的一个列,每个值都是由ID拼接的字符串,用户希望能针对这个列做到数据检索,要求数据值只要包含传入值,即视为满足检索条件。
在这里插入图片描述

笔者的第一反应就是:简单!!!
二话不说立马写SQL

select t.* from TABLE_T t where instr(t.ids, '8') > 0

运行,这个时候发现结果如下:
在这里插入图片描述

上述的查询结果其实是不满足条件的,因为我传入一个’8’,按照正常情况应该只查询出第4条数据才对,但是因为’6,88’也包含了’8’,所以也查出来了。

想了一想,INLIKE肯定也满足不了需求啊。笔者开始难受,搜肠刮肚,无奈肚中没有多少知识储备,此刻我的心情是这样的:
在这里插入图片描述
书到用时方恨少!!!

但是万能的水友提示我,MyS

评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值