我在这些表中保存了用户输入(注释)。
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个条目。
我可以在不改变当前页面的情况下这样做吗?你能提供一个查询吗?
答案 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