繁体   English   中英

帮助计算总行数

[英]Help counting total number of rows

我有以下类型的查询:

SELECT * FROM TABLE
GROUP BY Table.Table_ID
LIMIT 10

我想知道如果没有LIMIT 10 ,将会选择多少行。 我不能简单地选择COUNT(Table_ID)因为我将其分组,因此它将在每一行中给出1。

手册中有明确说明

SQL_CALC_FOUND_ROWS告诉MySQL忽略任何LIMIT子句,计算结果集中将有多少行。 然后可以使用SELECT FOUND_ROWS()检索行数。 请参见第11.13节“信息功能”。

如果您单击第11.13节的链接,则有一个示例:

FOUND_ROWS()

SELECT语句可以包含LIMIT子句,以限制服务器返回给客户端的行数。 在某些情况下,希望知道在没有LIMIT情况下该语句将返回多少行,而无需再次运行该语句。 要获得此行计数,请在SELECT语句中包括一个SQL_CALC_FOUND_ROWS选项,然后再调用FOUND_ROWS()

 mysql> SELECT SQL_CALC_FOUND_ROWS * FROM tbl_name -> WHERE id > 100 LIMIT 10; mysql> SELECT FOUND_ROWS(); 

第二个SELECT返回一个数字,该数字指示如果没有LIMIT子句而写入的第一个SELECT将返回多少行。

如果在最近成功执行的SELECT语句中没有SQL_CALC_FOUND_ROWS选项,则FOUND_ROWS()返回该语句返回的结果集中的行数。 如果该语句包含LIMIT子句,则FOUND_ROWS()返回不超过限制的行数。 例如,如果语句包含LIMIT 10LIMIT 50, 10 FOUND_ROWS() ,则FOUND_ROWS()返回1060

请使用文档作为您的第一个停靠港。

SELECT COUNT(DISTINCT TABLE_ID) FROM TABLE

您可以在包含所有要查找的行的结果集上调用mysql_num_rows函数。

$result = mysql_query('SELECT * FROM TABLE GROUP BY Table.Table_ID');
$row_count = mysql_num_rows($result);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM