我想根据时间戳检索内容内容。我的查询是
SELECT link,title,timestamp,photo,link,author,comments FROM posts
WHERE timestamp='*Todays Date -1*' LIMIT 6
如果查询返回零行,如何使用 while 语句查询 2 天前或 3 天前的结果?
最佳答案
为什么不直接查询全表(没有时间戳过滤器)并返回 6 行的限制。在这种情况下,没有理由迭代查询
SELECT link,title,`timestamp`,photo,link,author,comments
FROM posts
ORDER BY `timestamp` DESC
LIMIT 6
这将为您提供最多 6 条记录,首先返回最新的记录。您应该在该查询的 timestamp
字段上有索引,这没问题,因为您应该已经有一个索引,因为您之前尝试过在此字段上进行过滤。
如果您遇到的情况是最后一天内显示的行数超过 3 行,并且您不需要显示前几天的记录,那么通过在循环结果集时检查值即可轻松实现这一点。
如果数据库中只有 2 条记录,这也可以防止陷入无限循环。
另请注意 timestamp
是保留字,使用此类字段名称时应小心。如果必须使用保留字作为字段名称,则必须用反引号将其括起来。
关于php - 如何使用 while 循环直到从 mySQL 的表中获取 3 行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20573983/