oracle sql 用什么可以替代or,这样查询特别慢

2024-12-17 01:09:36
推荐回答(4个)
回答1:

可以用union,比如select 内容 from user where name='张三' union select 内容 from user where name='李四',相当于select 内容 from user where name='张三' or name='李四' ,因为union会用到索引,不知道你这个表有没有索引,表的数据多大?

回答2:

唯一的优化方案就是,把越能命中的or语句放到最前面,增加前面减少后面的or 逻辑判断

回答3:

用case when 替换,应该会快点,而且安全

回答4:

用 union all
select * from tableA
where c1='A'
union all
select * from tableA
where c1='B'