php - 如何使用 while 循环直到从 mySQL 的表中获取 3 行?

标签 php mysql sql

我想根据时间戳检索内容内容。我的查询是

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/

相关文章:

sql - 带有条件的多个 INSERT 和 SELECT 在一个请求中返回

mysql - 来自同一张表的两个不同数据

php preg_split 不识别空格

javascript - 如何通过隐藏输入元素将 PHP 字符串变量传递给 Javascript 函数

php 在 for 循环中运行 mysql_query

php - PHP如何只获取MYSQL数据库中指定时间段内的记录?

mysql - 如何从Django中的嵌入代码中具有一对多关系的另一个表获取主键

php - 在没有 WSDL 的情况下提供 SOAP 服务是不好的做法吗?

mysql - Concat/内连接 MySQL

mysql - 如何给出多于一个的having子句