在 MySQL 中使用 SELECT 和 LIMIT 計算行數
在 MySQL 中,LIMIT 子句可用於限制傳回的行數詢問。但是,使用 LIMIT 時,取得表格中滿足查詢條件的總行數可能會很困難。
考慮以下查詢,該查詢從兩個表之間的聯接檢索前10 行,table1和table2,基於某些條件(cond1,cond2,...,condN):
SELECT A.ID, A.NAME, B.ID, B.NAME FROM table1 A JOIN table2 B ON ( A.ID = B.TABLE1_ID ) WHERE cond1, cond2, ..., condN LIMIT 10
為了檢索滿足這些條件的總行數而不發出另一個不帶LIMIT的查詢,MySQL提供了SQL_CALC_FOUND_ROWS 關鍵字。透過將SQL_CALC_FOUND_ROWS 合併到初始查詢中,MySQL 在應用LIMIT 子句之前計算總行數:
SELECT SQL_CALC_FOUND_ROWS A.ID, A.NAME, B.ID, B.NAME FROM table1 A JOIN table2 B ON ( A.ID = B.TABLE1_ID ) WHERE cond1, cond2, ..., condN LIMIT 10
執行此查詢後,可以使用以下單獨的查詢來取得總行數:
SELECT FOUND_ROWS();
透過組合這兩個查詢,您可以限制傳回的行數並檢索總行數,而不需要額外的查詢。
以上是如何在 MySQL 中使用 LIMIT 來計算總行數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!