关于like in的需求

dj0517 2008-06-16 03:56:35
oracle里有没有能实现like in的功能,如: select * from table1 where field1 like in (select '%' ¦ ¦field1 ¦ ¦'%' from table2)
已知的可以用 || 实现,如 select * from table1 where field1 like ('%' ¦ ¦field1 ¦ ¦'%') or field1 like ('%' ¦ ¦field2 ¦ ¦'%') 但table2表里的数据有很多,这样做拼出的sql太吓人,而且效率也很低

请问有没有好的办法?
...全文
196 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
dj0517 2008-06-16
  • 打赏
  • 举报
回复
哦 谢谢了,我试试
WangZWang 2008-06-16
  • 打赏
  • 举报
回复
由于你的语句用不到索引,没有满足用到索引的条件,如果数据量大,当然执行就比较慢了。
如果能根据你具体的要求,改写成 field1||'%' ,在field1上建立索引就可以用到索引。
dj0517 2008-06-16
  • 打赏
  • 举报
回复
执行起来很慢,有没有快点的
WangZWang 2008-06-16
  • 打赏
  • 举报
回复
如:
select * from table1 t where exists(
select * from table2 where t.field1 like '%'||field1||'%')

3,491

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧