温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

怎么统计结果集行数

发布时间:2026-07-15 16:40:12 来源:亿速云 阅读:93 作者:小樊 栏目:数据库

统计结果集行数,常见做法取决于你用的数据库/语言/场景。下面按常见情况说明:


一、SQL 中统计结果集行数

✅ 方法 1:使用 COUNT(*)

最通用、最安全。

SELECT COUNT(*) AS total
FROM (
    SELECT *
    FROM your_table
    WHERE conditions
) t;

✅ 适用于:

  • MySQL
  • PostgreSQL
  • Oracle
  • SQL Server

✅ 方法 2:直接 COUNT(*)(推荐)

如果不需要返回结果集,只关心行数:

SELECT COUNT(*) 
FROM your_table
WHERE conditions;

✅ 方法 3:数据库特有写法

MySQL

SELECT SQL_CALC_FOUND_ROWS * 
FROM your_table
WHERE conditions;

SELECT FOUND_ROWS();  -- 返回上一条查询的总行数

⚠️ 注意:SQL_CALC_FOUND_ROWSMySQL 8.0.17 已废弃


SQL Server

SELECT COUNT(1) FROM your_table;

或使用:

@@ROWCOUNT

(在存储过程或脚本中)


Oracle

SELECT COUNT(*) FROM your_table;

或:

SELECT COUNT(1) FROM your_table;

二、在程序中统计结果集行数

✅ Java(JDBC)

ResultSet rs = stmt.executeQuery(sql);
int count = 0;
while (rs.next()) {
    count++;
}

或先查 count:

ResultSet rs = stmt.executeQuery("SELECT COUNT(*) FROM table");
rs.next();
int count = rs.getInt(1);

✅ Python(示例:MySQL / PostgreSQL)

cursor.execute("SELECT * FROM table")
rows = cursor.fetchall()
print(len(rows))

或:

cursor.execute("SELECT COUNT(*) FROM table")
count = cursor.fetchone()[0]

三、分页时统计总行数(常见需求)

-- 查询数据
SELECT *
FROM table
LIMIT 10 OFFSET 0;

-- 查询总条数
SELECT COUNT(*) AS total
FROM table;

四、性能建议 ✅

场景 建议
只关心数量 COUNT(*)
大数据表 避免 SELECT * 再统计
分页 数据查询 + COUNT(*) 分开
精确统计 不用缓存行数

如果你能告诉我:

  • 用的是 哪种数据库
  • SQL 查询 / 程序代码 / ORM(如 MyBatis、Hibernate)

我可以给你更精确的写法

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI