更新
我正在做一个网站的后端。该网站的意思是向访问者提供一个清晰的概览,我们正在组织什么时间和什么活动。
所以我用各种活动填满了数据库。每个活动都有日期、名称和其他一些信息。
很明显,展示过去的活动对参观者没有帮助,所以我只想让他们展示即将到来的活动。为了节省自己的大量工作,最好做 PHP/MySQL 的所有工作并只向访问者展示 2 个接下来的事件。
你能告诉我一个MySQL函数来做到这一点吗?
提前致谢,
只是一些建议:
选择当前时刻之前最近的 2 个事件和当前时刻之后最近的 2 个事件。
(SELECT *
FROM ...
WHERE `time` < NOW()
ORDER BY `time` DESC
LIMIT 2)
UNION
(SELECT *
FROM ...
WHERE `time` > NOW()
ORDER BY `time` ASC
LIMIT 2)
此时,您将在 PHP 中最多有 4 个事件。但是您只需要 2. 最接近的 2. 要找出您使用的最接近的,strtotime
并检查事件的时间戳与您可以通过调用获得的当前时间戳之间的差异time()
。之后,您只保留 2 个最接近的事件。
请注意,这可以直接从 MySQL 实现,但这种方式更难。
@最新更新。如果您不想了解更多信息,阅读此内容就足够了。
只需使用此查询:
SELECT *
FROM ...
WHERE `time` > NOW()
ORDER BY `time` ASC
LIMIT 2
$query = 'SELECT .... FROM ... WHERE `date` > '.$today.' ORDER BY `date` DESC LIMIT 2';
$today
取决于您的date
列类型。