mysql found_row()使用詳解
mysql found_row()用于獲取Select得到的行數(shù),比如有段sql需要取出一張表的前10行,同時又需要取出符合條件的總數(shù)。 本文章向大家介紹mysql found_row的用法,感興趣的可以參考一下。
mysql 4.1中新增了FOUND_ROWS()函數(shù),這個函數(shù)的說明是這樣的:
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行,同時又需要取出符合條件的總數(shù)。這在某些分頁操作中很常見
SELECT SQL_CALC_FOUND_ROWS * FROM tbl_name WHERE id > 100 LIMIT 10;
在上一查詢之后,你只需要用FOUND_ROWS()就能獲得查詢總數(shù),這個數(shù)目是拋掉了LIMIT之后的結(jié)果數(shù):
SELECT FOUND_ROWS();
其中第一個sql里面的SQL_CALC_FOUND_ROWS不可省略,它表示需要取得結(jié)果數(shù),也是后面使用FOUND_ROWS()函數(shù)的鋪墊。
記一次使用中遇到的問題的解決方法
寫MySQL分頁使用了發(fā)現(xiàn)FOUND_ROWS總是返回1,實(shí)際記錄絕不止1條。SQL語句如下:
select sql_calc_found_rows * from actionlist where A_ID > 0 limit 10; select FOUND_ROWS();
網(wǎng)上查找中文資料,沒有解決。英文資料找到問題原因
使用MySQL Workbech出現(xiàn)了上述問題。使用MySQL Command Line Client執(zhí)行同樣SQL語句返回值OK!
要是遇到同樣問題,試試!
相關(guān)文章
MySQL數(shù)據(jù)庫遠(yuǎn)程連接很慢的解決方案
本文給大家分享的是MySQL數(shù)據(jù)庫遠(yuǎn)程連接很慢的解決方法,簡單的說就是開啟skip-name-resolve,非常的簡單實(shí)用,有需要的小伙伴可以參考下2016-12-12解決MySQL批量新增或修改時出現(xiàn)異常:Lock?wait?timeout?exceeded
這篇文章主要給大家介紹了關(guān)于如何解決MySQL批量新增或修改時出現(xiàn)異常:Lock?wait?timeout?exceeded;try?restarting?transaction的相關(guān)資料,需要的朋友可以參考下2024-01-01詳解Mysql中explain執(zhí)行計(jì)劃信息中字段
Extra是EXPLAIN輸出中另外一個很重要的列,該列顯示MySQL在查詢過程中的一些詳細(xì)信息,MySQL查詢優(yōu)化器執(zhí)行查詢的過程中對查詢計(jì)劃的重要補(bǔ)充信息,這篇文章主要介紹了Mysql中explain執(zhí)行計(jì)劃信息中字段詳解,需要的朋友可以參考下2023-08-08Mysql8創(chuàng)建用戶及賦權(quán)操作實(shí)戰(zhàn)記錄
一般在開發(fā)中,我們需要新建一個賬戶,并賦予某個數(shù)據(jù)庫的訪問權(quán)限,下面這篇文章主要給大家介紹了關(guān)于Mysql8創(chuàng)建用戶及賦權(quán)操作的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-04-04