我现在有一个表查询, 要用两个字段来都符合条件 来查询结果
SELECT *
FROM orders
WHERE quantity =1 AND customer = 'Tizag' 现在遇到的问题是
现在我们有一组的的数据 要查询 最简单的做法是Java里写一个循环是
for(int i=0;i<listA.size();i++){
SELECT *
FROM orders
WHERE (quantity =listA.get(0) AND customer = listB.get(0))
} 然后一条一条连接数据库查, 这样速度非常慢
或者写成一条语句
SELECT *
FROM orders
WHERE (quantity =listA.get(0) AND customer = listB.get(0))
OR (quantity =listA.get(1) AND customer = listA.get(1)) or
OR (quantity =listA.get(2) AND customer = listA.get(2)) 这个LIST 可能有100K 条记录 这样就造成了SQL 非常的长。
而一条一条查要100K次 大家有什么其他好的建议没有。谢谢。
SELECT *
FROM orders
WHERE quantity =1 AND customer = 'Tizag' 现在遇到的问题是
现在我们有一组的的数据 要查询 最简单的做法是Java里写一个循环是
for(int i=0;i<listA.size();i++){
SELECT *
FROM orders
WHERE (quantity =listA.get(0) AND customer = listB.get(0))
} 然后一条一条连接数据库查, 这样速度非常慢
或者写成一条语句
SELECT *
FROM orders
WHERE (quantity =listA.get(0) AND customer = listB.get(0))
OR (quantity =listA.get(1) AND customer = listA.get(1)) or
OR (quantity =listA.get(2) AND customer = listA.get(2)) 这个LIST 可能有100K 条记录 这样就造成了SQL 非常的长。
而一条一条查要100K次 大家有什么其他好的建议没有。谢谢。
解决方案 »
- oracle 零时表扫描,完成数据验证后,插入到其他表
- PLSQL developer从ORACLE中导出的TSV文件中有空行
- 跪求高手指点!!!SQL plus登不上,协议适配器错误。PLSQL Developer可以登录
- while的问题
- sql查询
- 关于 ORACLE job停止执行的疑问
- 各位大哥:怎样用命令删除表空间某用户的所有表
- 存储过程传入一个列以“¥”分隔,行以“,”分隔的字符串;存储过程解析后插入为表的多行数据。
- 如何消灭掉Default默认值?
- 急,oar817,log_archive_start=true方式运行,log_archive_dest的磁盘满了,我该怎么做?
- 请帮忙优化一下SQL,查询速度相当慢,每个查询字段都已经建立索引了,可是还是不行。
- oracle Trunc()函数计算本年已过去多少天
select *
from (select o.order_id,
p.product_name,
Row_Number() OVER(partition by order_id ORDER BY product_name desc) rank
from orders o
left join order_product p on o.order_id = p.order_id)
where rank = 1
select * from orders a,TempTbl b where a.quantity=b.quantity and a.customer=b.customer
程序调用的话在程序里拼串然后无论是in数据组还是条件判断用or都比较容易写如果直接执行的话,就先定义个一个参数来把串拼出来
,可以写个存储过程或者函数,定义一个临时的varchar串来存放你拼好的数据,然后调用下
最好就是用临时表了..把LIST的数据插到临时表里,然后用存储过程处理...处理结果也放到临时表里..然后JAVA去读临时表....