Oracle中替换like的方法

数据库中存储了海量的数据,当查询时使用like,速度明显变慢。我在做项目时,发现可以使用instr函数来取代like的作用。

1.%a%方式:
select * from pub_yh_bm t
where instr(t.chr_bmdm,'2')>0

等份于:
select * from pub_yh_bm t
where t.chr_bmdm like '%2%'


2.%a方式:
select * from pub_yh_bm t
where instr(t.chr_bmdm,'110101')=length(t.chr_bmdm)-length('110101')+1

等份于:
select * from pub_yh_bm t
where t.chr_bmdm like '%110101'


3.a%方式:
select * from pub_yh_bm t
where instr(t.chr_bmdm,'11010101')=1

等份于:
select * from pub_yh_bm t
where t.chr_bmdm like '11010101%'

猜你喜欢

转载自bjyzxxds.iteye.com/blog/1681486