帮助计算总行数

bgc*_*ode 1 php mysql

我有以下类型的查询:

SELECT * FROM TABLE
GROUP BY Table.Table_ID
LIMIT 10
Run Code Online (Sandbox Code Playgroud)

我想知道如果那些行LIMIT 10不存在将选择多少行.我不能简单地选择COUNT(Table_ID)因为我按此分组,所以它会在每一行中给出1.

Lig*_*ica 6

手册中清楚地描述:

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

如果你按照第11.13节的链接,那么就有一个例子:

FOUND_ROWS()

一个SELECT语句可能包括一个LIMIT条款,限制服务器返回给客户端的行数.在某些情况下,需要知道语句在没有的LIMIT情况下返回了多少行,但是没有再次运行语句.要获取此行计数,请SQL_CALC_FOUND_ROWSSELECT语句中包含一个选项,然后在以后调用FOUND_ROWS():

mysql> SELECT SQL_CALC_FOUND_ROWS * FROM tbl_name
    -> WHERE id > 100 LIMIT 10;
mysql> SELECT FOUND_ROWS();
Run Code Online (Sandbox Code Playgroud)

第二个SELECT返回一个数字,表示如果SELECT没有该LIMIT子句,第一个将返回的行数.

如果SQL_CALC_FOUND_ROWS最近成功的SELECT语句中没有该选项,则FOUND_ROWS()返回该语句返回的结果集中的行数.如果语句包含LIMIT子句,则FOUND_ROWS()返回最多行数.例如,如果语句包含或,则FOUND_ROWS()返回1060分别返回.LIMIT 10LIMIT 50, 10

请使用该文档作为您的第一个停靠点.