这是我的数据结构:
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]
感谢
答案 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;