簡體   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