mysql found_row()使用详解
mysqlfound_row()用于获取Select得到的行数,比如有段sql需要取出一张表的前10行,同时又需要取出符合条件的总数。本文章向大家介绍mysqlfound_row的用法,感兴趣的可以参考一下。
mysql4.1中新增了FOUND_ROWS()函数,这个函数的说明是这样的:
ForaSELECTwithaLIMITclause,thenumberofrowsthatwouldbereturnedweretherenoLIMITclause ASELECTstatementmayincludeaLIMITclausetorestrictthenumberofrowstheserverreturnstotheclient.Insomecases,itisdesirabletoknowhowmanyrowsthestatementwouldhavereturnedwithouttheLIMIT,butwithoutrunningthestatementagain.Toobtainthisrowcount,includeaSQL_CALC_FOUND_ROWSoptionintheSELECTstatement,andtheninvokeFOUND_ROWS()afterward:
比如说有段sql需要取出一张表的前10行,同时又需要取出符合条件的总数。这在某些分页操作中很常见
SELECTSQL_CALC_FOUND_ROWS*FROMtbl_name WHEREid>100LIMIT10;
在上一查询之后,你只需要用FOUND_ROWS()就能获得查询总数,这个数目是抛掉了LIMIT之后的结果数:
SELECTFOUND_ROWS();
其中第一个sql里面的SQL_CALC_FOUND_ROWS不可省略,它表示需要取得结果数,也是后面使用FOUND_ROWS()函数的铺垫。
记一次使用中遇到的问题的解决方法
写MySQL分页使用了发现FOUND_ROWS总是返回1,实际记录绝不止1条。SQL语句如下:
selectsql_calc_found_rows*fromactionlistwhereA_ID>0limit10; selectFOUND_ROWS();
网上查找中文资料,没有解决。英文资料找到问题原因
使用MySQLWorkbech出现了上述问题。使用MySQLCommandLineClient执行同样SQL语句返回值OK!
要是遇到同样问题,试试!