MySQL查询简单分页

时间:2015-12-05 16:09:27

标签: php mysql

这是我的数据结构:

news
id  date         name
----------------------
2   2015-12-01   news1
3   2015-12-04   news2 
4   2015-12-07   news3 
7   2015-12-08   news4 

我正在显示最新的新闻记录(身份证号码7),并希望为年龄较大的"添加导航按钮。和"更新"

那么获取下一个较旧的新闻记录(ID 4)的网址的最佳方法是什么? 像select * from news where [date which is next lower id to current id]

这样的东西

感谢

3 个答案:

答案 0 :(得分:1)

查询"更新":

select * from news where date > (select date from news where id = X) order by date asc limit 1;

查询"较早的":

select * from news where date < (select date from news where id = X) order by date desc limit 1;

将X替换为您的目标ID。我假设&#34; id&#34;是独一无二的。

在MySQL 5.5上测试。

答案 1 :(得分:1)

您可以将limit与范围一起使用:第一个参数是偏移量,第二个参数是两个返回的项目数 这将为您提供前两个记录:

Select * from news order by id limit 0,2

这就是两个人:

Select * from news order by id limit 2,2

答案 2 :(得分:0)

您可以使用以下代码参数_date是此示例中记录7的日期

//for newer : 
 SELECT * FROM news where date>parameter_date order by date asc limit 1,1;
//for older : 
  SELECT * FROM news where date<parameter_date order by date desc limit 1,1;

如果你想用id做这个,你可以使用下面的代码parameter_id是你的新闻ID

//for newer : 
 SELECT * FROM news where date>(select date from news where id=parameter_id) order by date asc limit 1,1;
//for older : 
  SELECT * FROM news where date<(select date from news where id=parameter_id) order by date desc limit 1,1;