程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> mysql found_row()使用詳解

mysql found_row()使用詳解

編輯:關於MYSQL數據庫

mysql found_row()用於獲取Select得到的行數,比如有段sql需要取出一張表的前10行,同時又需要取出符合條件的總數。 本文章向大家介紹mysql found_row的用法,感興趣的可以參考一下。

mysql 4.1中新增了FOUND_ROWS()函數,這個函數的說明是這樣的:

復制代碼 代碼如下:
For a SELECT with a LIMIT clause, the number of rows that would be returned were there no LIMIT clause
A SELECT statement may include a LIMIT clause to restrict the number of rows the server returns to the client. In some cases, it is desirable to know how many rows the statement would have returned without the LIMIT, but without running the statement again. To obtain this row count, include a SQL_CALC_FOUND_ROWS option in the SELECT statement, and then invoke FOUND_ROWS() afterward:

比如說有段sql需要取出一張表的前10行,同時又需要取出符合條件的總數。這在某些分頁操作中很常見

SELECT SQL_CALC_FOUND_ROWS * FROM tbl_name
WHERE id > 100 LIMIT 10;

在上一查詢之後,你只需要用FOUND_ROWS()就能獲得查詢總數,這個數目是拋掉了LIMIT之後的結果數:

SELECT FOUND_ROWS();

其中第一個sql裡面的SQL_CALC_FOUND_ROWS不可省略,它表示需要取得結果數,也是後面使用FOUND_ROWS()函數的鋪墊。

記一次使用中遇到的問題的解決方法

寫MySQL分頁使用了發現FOUND_ROWS總是返回1,實際記錄絕不止1條。SQL語句如下:

select sql_calc_found_rows * from actionlist where A_ID > 0 limit 10;
select FOUND_ROWS();

網上查找中文資料,沒有解決。英文資料找到問題原因

使用MySQL Workbech出現了上述問題。使用MySQL Command Line Client執行同樣SQL語句返回值OK!

要是遇到同樣問題,試試!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved