我有以下用于从 mysql 数据库中提取数据的查询。
SELECT ProductCode, ProductName, ProductCategory
FROM Product
WHERE <<Criteria goes here>>
查询返回的数据由 .NET 应用程序使用,我得到了一百万行数据,我正在通过 DataReader 逐一查看这些数据。
现在我必须显示进度条,告诉用户已收到多少百分比的行。这意味着我需要一个总数
一位 friend 建议我添加 COUNT(*) 作为一个额外的列,它将具有重复的数字,但我们不必进行两次往返,一次获取计数,另一次获取行。
SELECT ProductCode, ProductName, ProductCategory, COUNT(*)
FROM Product
WHERE <<Criteria goes here>>
当我添加 COUNT(*) 时,mysql 只返回一条记录。 第二,我不确定这是否是个好主意。
请分享你对这件事的了解
最佳答案
您可以使用 SQL_CALC_FOUND_ROWS http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_found-rows
例如 选择 SQL_CALC_FOUND_ROWS、ProductCode、ProductName、ProductCategory 从产品 在哪里 <>
然后运行此查询以获取不过滤的行数 '选择 FOUND_ROWS();'
关于c# - 使用 COUNT(*) 运行 SQL 查询,以便我们知道有多少记录将通过 DataReader,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18880443/