substr和like那个查询的速度快?

zcs_1 2003-05-30 01:02:02
在sql语句中,要得到某列前面的几个字符为指定字符的时,可以使用like语句或substr函数,用哪种方法速度更快呢?
...全文
2592 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
lynx 2003-06-01
  • 打赏
  • 举报
回复
同意tsj68(tsj)
tulip2108 2003-05-31
  • 打赏
  • 举报
回复
up
tsj68 2003-05-31
  • 打赏
  • 举报
回复
如果like 后面为 'somestring%' 则用到了索引,
如果是 '%somestring' 则用不到索引.
Michaelyfj 2003-05-30
  • 打赏
  • 举报
回复
like如果是做匹配,是支持索引的,如 where name like '林%',如果name有索引,
则会使用索引,而substr不支持索引。

对于8i,并不是所有8i版本都支持函数索引,必须是Oracle8i Enterprise Manager才
可以使用函数索引
beckhambobo 2003-05-30
  • 打赏
  • 举报
回复
like不可取,对索引不支持。
substr(),instr()可以建立函数索引(8i以上)
Michaelyfj 2003-05-30
  • 打赏
  • 举报
回复
如果有索引,用like比较快

因为like进行右匹配的时候,用到了索引,而substr函数则没有使用索引
BlueskyWide 2003-05-30
  • 打赏
  • 举报
回复
对长字符串,用substr要好些,
对短的,好像差不多。

17,137

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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