[英]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 10
或LIMIT 50, 10
FOUND_ROWS()
,则FOUND_ROWS()
返回10
或60
。
请使用文档作为您的第一个停靠港。
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.