计算MySQL查询的所有结果以进行分页

时间:2010-11-15 16:37:16

标签: php mysql

我正在构建一个搜索页面,每个页面都有10个结果。为此,我想在底部显示页码(例如在谷歌中),这样用户就可以跳转到特定的页面结果。为了做到这一点,我需要知道查询的总体计数(例如,如果我每页显示10个结果,并且特定查询在我的表中返回73行,我将需要显示8页的链接)。

我能想到的唯一方法是使用以下(显然效率低下)查询:

// Query for the current page
$res = mysql_query("select * from TABLE WHERE COL='Sample' LIMIT $offset,10");

// Geeting the total count do I can build links to other pages
$res2 = mysql_query("select COUNT(*) fromTABLE WHERE COL='Sample'");    

这是唯一的方法吗?

谢谢,

丹尼

1 个答案:

答案 0 :(得分:8)

你可以use

SQL_CALC_FOUND_ROWS


mysql> SELECT SQL_CALC_FOUND_ROWS * FROM tbl_name
    -> WHERE id > 100 LIMIT 10;
mysql> SELECT FOUND_ROWS();
  

SQL_CALC_FOUND_ROWS告诉MySQL   计算会有多少行   在结果集中,无视任何   LIMIT条款。行数可以   然后用SELECT检索   FOUND_ROWS()