我的页面如下:
| <<后退按钮|图片|转发按钮>> |
每一行都有一个唯一的ID号,使用该ID我可以从我的数据库中获得结果。
<<后退按钮是一个超链接,它应该包含前一行ID。转发按钮>>应包含下一行ID。
ID
列的INTEGER值为AUTO_INCREMENT。
我应该如何编写查询?我可以使用负值吗?类似的东西:
SELECT * FROM `db` ORDER BY `ID` DESC LIMIT -1, 1
有效吗?
答案 0 :(得分:1)
您不能使用负值,但您可以使用id
子句中的当前WHERE
来查找小于它的值,按ID DESC
排序并限制为3。 auto_increment
id列按降序排序,因此将会定位小于当前所选ID的前3个值。
SELECT *
FROM `db`
WHERE `ID` < [your_current_id]
ORDER BY `ID` DESC
LIMIT 3
同样要获得接下来的三个,请使用>
并按升序排序。
SELECT *
FROM `db`
WHERE `ID` > [your_current_id]
ORDER BY `ID` ASC
LIMIT 3
答案 1 :(得分:1)
没有。你不能这样做。
如果你纯粹是通过身份证进行分页,那么就像
那样next 10 records:
select ... where id > $current_id order by id ASC limit 10
previous 10 records:
select ... where id < $current_id order by id DESC limit 10
会这样做,但是你只能按顺序浏览ID。正确的分页功能会将您正在排序的字段与导航内容解除关联。将 PAGE * NUMBERS 存储到上一个/下一个链接中,然后使用分页集中的记录总数来计算LIMIT中使用的行偏移量,例如