因为评论总是有,你可以选择显示前5条评论(我知道如何),如果有超过5条,你可以点击链接,它会显示以下5条评论。问题是我不知道代码应该如何显示下一个5。
更好地了解我在说什么 假设我有10条评论,我使用
SELECT * FROM news ORDER BY ID DESC 限制5
将显示前5条评论说,ID为10,9,8,7,6的评论
但如果我想要ID为5,4,3,2,1的评论怎么办?
答案 0 :(得分:4)
SELECT * FROM news ORDER BY ID DESC LIMIT 5, 5
假设您使用MySQL,LIMIT
支持两个参数,offset
(可选)和row_count
:
[LIMIT {[offset,] row_count | row_count OFFSET offset}]
使用OFFSET
的替代方法是与PostgreSQL兼容。
答案 1 :(得分:2)
我假设你在谈论MySQL,所以你的答案是:
SELECT * FROM news ORDER BY ID DESC LIMIT 5 OFFSET 5
答案 2 :(得分:1)
与风味无关的一种方法是:
SELECT TOP 5 *
FROM table
WHERE pk NOT IN (SELECT TOP (page * 5) pk
FROM table
ORDER BY pk)
ORDER BY pk
答案 3 :(得分:1)
这是客户的事。
显示5,隐藏其余部分直到被点击。喜欢这个网站:没有回电来获取剩余的隐藏评论。
答案 4 :(得分:0)
如果你想显示所有文本的前五个评论(从你对Joscha的评论中获取),然后是另外五个评论但是缩短文本或只是标题,你不应该使用两个SQL查询,而是更多的是这在您的应用程序逻辑中。
所以选择所有新闻条目:
SELECT id, title, body, date FROM news ORDER BY id DESC LIMIT 10
然后循环结果。显示与前五个不同的前五个。
如果你想拥有类似Paginator的东西,你可以从第0页开始:
$page = isset($_GET['page'] ? intval($_GET['page']) : 0;
SELECT id, title, body, date FROM news ORDER BY id DESC LIMIT 5 OFFSET $page * 5 + 5;