数据库查询过程中条件过多如何解决?
来源:互联网 发布:网络摄像机 掉包 编辑:程序博客网 时间:2024/05/21 06:18
有如下查询语句:
select * from t_table where id in(id1,id2,...id10000)这种情况一般不会多见。在oracle中执行会抛"ORA-01795:表达式超过1000列"的异常
如何解决这个问题呢?
1) 将"in"表达式中的条件数据分为多份"or in"的表达式来执行。改变的代码如下
select * from t_table where id in (id1, id2, id3)
or id in(id4,id5,id6)...
这种方法比较简便,但不易于维护。而且当id量过大时,分组过多效率也会很低。
2) 可以通过临时表来解决问题
a) 创建临时表tbIdGroud,其中只有一个字段id,且为主键。
b) 将大批量的id条件插入tbIdGroud
c) 关联t_table,tbIdGroud进行多表查询。
这种需要将条件数据插入临时表,会有一定的性能消耗,当id量不是超大时一般不推荐使用。
3) 需求过程中的解决
这种问题的出现,可以回过来想是否在需求上还可以有更好的方法。可以通过以下方法类避开这个问题
a) 当提交时超过一定数量的条件进入时,异常处理。
b) 试着用模糊查询或定位查询来替换。
- 数据库查询过程中条件过多如何解决?
- solr查询条件过多异常
- solr 查询条件过多异常处理
- 多条件查表数据库如何查询
- 多条件查询数据库表中记录
- 在数据库中条件查询很慢的时候,如何优化
- 在数据库中条件查询很慢的时候,如何优化?
- hibernate面试题 --- 在数据库中条件查询很慢的时候,如何优化
- 6. 在数据库中条件查询很慢的时候,如何优化
- 在数据库中条件查询很慢的时候,如何优化
- C++中 MFC DLL如何连接mysql数据库以及按条件查询和时间的比较
- orcle数据库中条件判断不起作用解决
- 存储过程条件查询
- 如何对存储过程返回的结果进行条件查询
- 如何对存储过程返回的结果进行条件查询
- 在网络传输过程中解决加载图片过多,过大问题
- 解决Android Studio 开发过程中方法数过多的问题
- 解决Android Studio 开发过程中方法数过多的问题
- SSH(Secure Shell Protocol)命令之sftp
- 如何让vm里的系统上网?
- 桌面图标拖不动怎么办?
- 要离开了
- 很酷的点击弹出层效果
- 数据库查询过程中条件过多如何解决?
- 很烦
- 简化Java日期操作的开源项目DATE4J,超级好用
- 状态栏始终处于加载状态问题原因及解决方法
- Java 开发八荣八耻
- DB2内置数据类型
- For遍历出列表信息
- DB2 索引设计准则
- 三种级别的DB2数据库字符集的设置与修改