Java 使用SELECT COUNT(*)获取结果集的大小
我想从数据库中检索所有数据,同时,我想知道我得到了多少行数据。这是我的SQL: 这是有效的SQL语句吗?在我检索了所有数据之后,如何将它们设置为不同的变量?例如,我在数据库中有一个名为UserID的列,我可以通过使用rs.getString'UserID'简单地获得它,但是如何获得计数的结果* 您的SQL无效。ANSI标准方法使用窗口函数来执行您想要的操作:Java 使用SELECT COUNT(*)获取结果集的大小,java,ms-access,count,Java,Ms Access,Count,我想从数据库中检索所有数据,同时,我想知道我得到了多少行数据。这是我的SQL: 这是有效的SQL语句吗?在我检索了所有数据之后,如何将它们设置为不同的变量?例如,我在数据库中有一个名为UserID的列,我可以通过使用rs.getString'UserID'简单地获得它,但是如何获得计数的结果* 您的SQL无效。ANSI标准方法使用窗口函数来执行您想要的操作: select count(*) over () as total_cnt, u.* from tblUser u; 这会在
select count(*) over () as total_cnt,
u.*
from tblUser u;
这会在每一行中添加一个新列,这似乎是您想要的。根据执行此操作的基础数据库,还有其他机制。您的SQL无效。ANSI标准方法使用窗口函数来执行您想要的操作:
select count(*) over () as total_cnt,
u.*
from tblUser u;
这会在每一行中添加一个新列,这似乎是您想要的。还有其他机制,具体取决于执行此操作的基础数据库。如果您的RDBMS不支持窗口功能,则可以选择此机制
rs = s.executeQuery("SELECT B.cnt, U.*
FROM tblUser U,
(SELECT count(*) cnt FROM tblUser) B");
如果您的RDBMS不支持窗口功能,则可以选择此选项
rs = s.executeQuery("SELECT B.cnt, U.*
FROM tblUser U,
(SELECT count(*) cnt FROM tblUser) B");
您请求的结果不相关,因此运行两个查询:
rs1 = s.executeQuery("SELECT COUNT(*) FROM tblUser");
rs2 = s.executeQuery("SELECT * FROM tblUser");
并以通常的方式仅为rs1检索一个值。您请求的结果不相关,因此运行两个查询:
rs1 = s.executeQuery("SELECT COUNT(*) FROM tblUser");
rs2 = s.executeQuery("SELECT * FROM tblUser");
并以通常的方式仅为rs1检索一个值。您可以这样做来计算结果集中的行数
String query = "Select * from tblUser";
rs = s.executeQuery(query);
public int getCount(ResultSet rs) {
int rows = 0;
while(rs.next()) {
i++;
}
return i;
}
通过这种方式,您可以获得结果集和计数您可以这样做来计数结果集中的行
String query = "Select * from tblUser";
rs = s.executeQuery(query);
public int getCount(ResultSet rs) {
int rows = 0;
while(rs.next()) {
i++;
}
return i;
}
通过这种方式,您可以获得结果集和计数,因为您已经在访问VBA中的记录集。最简单的方法可能是将记录集的计数返回到:
rs = s.executeQuery("SELECT * FROM tblUser");
If Not rs.EOF Then
' Important: You must move to the last record to
' obtain the count of the full recordset
rs.MoveLast
rsCount = rs.RecordCount
' Remember to Return to the First Record so that you can
' continue to use the recordset
rs.MoveFirst
End If
由于您已经在访问VBA中的记录集,最简单的方法可能是将记录集的计数返回到:
rs = s.executeQuery("SELECT * FROM tblUser");
If Not rs.EOF Then
' Important: You must move to the last record to
' obtain the count of the full recordset
rs.MoveLast
rsCount = rs.RecordCount
' Remember to Return to the First Record so that you can
' continue to use the recordset
rs.MoveFirst
End If
你用的是什么数据库?我认为那不是有效的SQL。通常情况下,计数必须单独进行。Count将只返回1条记录。执行常规选择并从结果集中获取行计数。如果您认为需要知道,您做错了。创建对象列表,绑定与行关联的对象,然后添加到列表中。关闭结果集并返回列表。列表的大小告诉您返回了多少行。您使用的是什么数据库?我认为这不是有效的SQL。通常情况下,计数必须单独进行。Count将只返回1条记录。执行常规选择并从结果集中获取行计数。如果您认为需要知道,您做错了。创建对象列表,绑定与行关联的对象,然后添加到列表中。关闭结果集并返回列表。列表的大小告诉您返回了多少行。那个“u”是什么意思?它叫什么?如何从“rs”中获取数据?u是tblUser的别名。它允许更短的SQL语句。u、 *与tblUser相同。*。您可以通过rs.getInt1或rs.getInttotal\u cnt获取数据,该“u”代表什么?它叫什么?如何从“rs”中获取数据?u是tblUser的别名。它允许更短的SQL语句。u、 *与tblUser相同。*。您可以通过rs.getInt1或rs.getInttotal\u cnt获取数据