如何知道下一条记录是否存在

时间:2014-11-15 19:47:01

标签: mysql

问题与页面分页的实现有关。

我的应用程序中有一个查询,它加载了表的第一条记录

select * from vendor_requested_categories 
where status = 0 ORDER BY document_id ASC Limit 1 

结果是

+-------------+---------+--------+------+------------------+
| document_id |   T1    |   T2   |  T3  | vendor_brand_id  |
+-------------+---------+--------+------+------------------+
|             |         |        |      |                  |
|           1 | Popcorn | Bucket | NULL |             3000 |
+-------------+---------+--------+------+------------------+

我的问题是:

是否可以知道它是否有下一个记录?

2 个答案:

答案 0 :(得分:1)

对于分页创建,您必须知道给定查询(过滤器)的记录数,因此您可以根据限制计算总页数。

因此,您可以在查询之前完成此操作以获取总记录:

select COUNT(*) AS N from vendor_requested_categories  where status = 0

然后你可以从页面参数计算偏移量:

$limit = 10;
$offset = ((int)$_GET['page'] * $limit) - $limit;

这是分页查询

select * from vendor_requested_categories  where status = 0  ORDER BY  document_id ASC  Limit $offset, $limit

如果您知道总页数和当前页面,则很容易知道您是否有下一条记录。

答案 1 :(得分:1)

您可以使用count()来查找记录总数。应该是这样的事情:

SELECT document_id, T1, T2, T3, vendor_brand_id, count(*) as total_records
FROM vendor_requested_categories 
WHERE status = 0 ORDER BY document_id ASC LIMIT 1

因此,您可以一次加载总记录数和第一条记录,而不是在数据库上进行两次查询。