如何高效判断某个字符串存在例如12345之类的子串?欢迎讨论,来着有分呐!

wnchg 2003-10-13 06:25:42
车牌号码表中有1000万条的车牌号码,怎么从中高效地查找号码中存在12345、6789、678之类子串的号码,数据库是oracle 7的。
...全文
121 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
bzszp 2003-11-05
  • 打赏
  • 举报
回复
如果是在字符串的任何位置的话
很难提高效率
wnchg 2003-11-05
  • 打赏
  • 举报
回复
UP
aceplus 2003-11-05
  • 打赏
  • 举报
回复
mark
wnchg 2003-11-05
  • 打赏
  • 举报
回复
1000万数据是不多,但是为了选择一个吉祥号码(号码里面含有‘168’,‘8899’、12345、6789、678……等等)就要多次搜索每一个号码,这样就多了,所以效率特别重要。
hdkkk 2003-11-05
  • 打赏
  • 举报
回复
我觉得 1000万数据又不多!
jasoncheung 2003-11-05
  • 打赏
  • 举报
回复
反正车牌就那么几位数,你定义先从第一位开始,然后以此类推,很容易的,比什么
’%13%‘,两边比对数据要快的多,不过首先你得建索引,这样速度应该要快很多。
比身份证号码好多了,我之前做身份证比对,那才叫辛苦那!!!!!!!!!

希望能帮上忙。。。
smallcrocodile 2003-10-27
  • 打赏
  • 举报
回复
自己写一段代码来实现更简单!
用什么过程等的反而复杂
beckhambobo 2003-10-27
  • 打赏
  • 举报
回复
1000万条记录!!!
无论你怎样优化语句,用什么函数也不能解决性能问题,基本以分区表根本解决此问题.
有兴趣可以参考以下:
http://download-west.oracle.com/docs/cd/B10501_01/server.920/a96524/c12parti.htm#464767
LGQDUCKY 2003-10-27
  • 打赏
  • 举报
回复
用LIKE如果是两边匹配,就用不上所引,使用INSTR比较快点,
如果是ORACLE还有个全文索引。。。。。
llm06 2003-10-27
  • 打赏
  • 举报
回复
最好还是根据你的具体情况写一个存储过程。like和instr是个通用的东东,不一定对于具体的问题会有很好的效率
wnchg 2003-10-20
  • 打赏
  • 举报
回复
欢迎讨论
wnchg 2003-10-17
  • 打赏
  • 举报
回复
来着有分
wnchg 2003-10-15
  • 打赏
  • 举报
回复
找到一个方法:
--后七位同顺
IF INSTR('0123456789',SUBSTR('车牌号码',2,7)) <> 0 THEN
PCODE := '七位同顺';
return;
END IF;
--后七位反顺
IF INSTR('9876543210',SUBSTR('车牌号码',2,7)) <> 0 THEN
PCODE := '后七位反顺';
return;
END IF;

但是这里要做循环,否则6、5、4……位同顺的号码不能检索出来。
但是做循环可能又太慢。
可否改进。
Strawberry79 2003-10-14
  • 打赏
  • 举报
回复
有意思,看。。。。
chanet 2003-10-13
  • 打赏
  • 举报
回复
按照大虾的方法:
表是否已分区,把要归类的号码分区,然后创建局部前缀索引

+ 索引 + like
pengdali 2003-10-13
  • 打赏
  • 举报
回复
在检索的时候用 instr 取代 like ,下面是测试结果:

create table dali.da as select 'dsafsdsbbsdf' t from user_objects a,user_objects b where rownum<5000000;

--18s
select * from dali.da where t like '%cc%';

--11s
select * from dali.da where instr(t,'cc')>0;
beckhambobo 2003-10-13
  • 打赏
  • 举报
回复
表是否已分区,把要归类的号码分区,然后创建局部前缀索引
robixiao 2003-10-13
  • 打赏
  • 举报
回复
1. create partion for those data
2. create unique or primary key
yfjyz 2003-10-13
  • 打赏
  • 举报
回复
看来只能用like了

17,134

社区成员

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

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