-1

我将用户输入(评论)保存在这些表中。

NEWS_COMMENTS
- id
- comment

PRODUCT_COMMENTS
- id
- comment
- product_id

我想在我的网站上添加历史功能。像;

-Someone commented on XX news.
-Someone commented on YY product.
-Someone commented on ZZ product.

你注意到了这个问题。我不保存时间戳或日期,所以我不能确定哪个评论先出现。它可以是新闻评论或产品评论。

MySQL 是否具有选择最近 24 小时输入的功能?例如,

NEWS_COMMENTS 在过去 24 小时内有 3 个新条目。PRODUCT_COMMENTS 在过去 24 小时内有 5 个新条目。

查询应选择这 8 个条目,按条目日期/时间戳排序。

我可以在不更改当前页面的情况下执行此操作吗?你能提供一个查询吗?

4

3 回答 3

3

您需要做的就是添加一个带有 typetimestamp和 option的列DEFAULT CURRENT_TIMESTAMP。您可能不需要对代码进行任何其他修改 - MySQL 会神奇地确保在您插入行时自动填写时间戳。

然后您可以通过一个简单的查询获取过去 24 小时的行:

SELECT col1, col2, ..., coln
FROM yourtable
WHERE yourtimestampcol > NOW() - interval 24 hour
于 2012-05-09T21:21:56.663 回答
1
SELECT * FROM  table WHERE timeStamp > NOW() - INTERVAL 24 HOUR

通过添加具有类型timestamp及其打开的列,DEFAULT CURRENT_TIMESTAMP这应该是您要查找的内容,显然会更改表名和时间戳列。

于 2012-05-09T21:24:06.297 回答
0

“MySQL 是否具有选择最近 24 小时输入的功能?”

使用您当前的数据库结构,没有。有可能吗?是的。您需要使用时间戳。您还没有新评论的事实表明您还没有考虑到您想要实现的目标的整个过程。

本质上,您需要将cooment_timestamp字段(或其他名称)作为时间戳类型添加到数据库并添加ON UPDATE子句 : ON UPDATE CURRENT_TIMESTAMP

然后,您可以SELECT使用时间戳信息查询()您需要的数据。

SELECT * FROM  `COMMENT_TABLE` WHERE comment_timetamp > NOW() - INTERVAL 24 HOUR
于 2012-05-09T21:25:50.250 回答