PHP:MY​​SQL历史记录功能?

时间:2012-05-09 21:17:50

标签: php mysql

我在这些表中保存了用户输入(注释)。

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个条目。

我可以在不改变当前页面的情况下这样做吗?你能提供一个查询吗?

3 个答案:

答案 0 :(得分:3)

您需要做的就是添加一个类型为timestamp的列和选项DEFAULT CURRENT_TIMESTAMP。您可能不需要对代码进行任何其他修改--MySQL将确保在插入行时自动填写时间戳。

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

SELECT col1, col2, ..., coln
FROM yourtable
WHERE yourtimestampcol > NOW() - interval 24 hour

答案 1 :(得分:1)

SELECT * FROM  table WHERE timeStamp > NOW() - INTERVAL 24 HOUR

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

答案 2 :(得分:0)

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

使用您当前的数据库结构,没有。 有可能吗?是。您需要使用t imestamps。您尚未获得新评论的事实表明您没有考虑过您想要实现的整个过程。

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

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

SELECT * FROM  `COMMENT_TABLE` WHERE comment_timetamp > NOW() - INTERVAL 24 HOUR