- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
编辑:除了戈登的回答之外,I found this question answered beautifully on this thread
虽然我们可以批量执行一组插入/更新语句,但对于 select 语句却没有这样的规定。我知道这是不可能的,因为它们返回的结果可能有很多列。
但是,SELECT COUNT(*) FROM table_name
仅返回一个值,而且是一个整数。有没有办法批量运行一组此类查询并以 int 数组形式检索结果?
我的特殊要求是对同一数据库上的一堆表运行这些查询,然后对更多数据库重复此操作。考虑这个例子:
String[] queries = {"SELECT COUNT(*) FROM table1",
"SELECT COUNT(*) FROM table2",
"SELECT COUNT(*) FROM table3" };
Statement st = connection.createStatement();
for(String q: queries){
st.addBatch(q);
}
st.executeBatch();
在这种情况下,executeBatch() 命令将仅返回受影响的行数,在这种情况下,每个语句的行数为零(我想)。
有没有办法制作一批这样的语句,因为它们每个只返回一个值?有什么解决办法吗?
具体要求如下..
SQL 过程是毫无疑问的,因为我必须在许多不同的数据库上执行此操作,并且除了读取它们之外我没有任何访问权限。我的意思是,我可以在那里存储过程,但我被告知不要以任何方式修改数据库,而只能从中读取。此外,数据库的数量稍后可能会增加,而我不会在那里安装这些过程,因此我不希望这种依赖关系才能使该解决方案真正灵活。
我使用 Java 和 SQL Server 2008 来构建一个网页,该网页从各种数据库上的一堆表中获取计数值并显示它们。
最佳答案
为什么不只运行一个查询呢?你可以这样做:
select (SELECT COUNT(*) FROM table1) as table1cnt,
(SELECT COUNT(*) FROM table2) as table2cnt,
(SELECT COUNT(*) FROM table3) as table3cnt;
您还可以每行返回一个值,但您需要一个附加列来标识表:
select which, cnt
from ((SELECT 'table1' as which, COUNT(*) as cnt FROM table1) union all
(SELECT 'table2' as which, COUNT(*) as cnt FROM table2) union all
(SELECT 'table3' as which, COUNT(*) as cnt FROM table3)
) t
关于java - 如何在Java中批量执行一组 'select count(*)'查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21479751/
我是一名优秀的程序员,十分优秀!