为了账号安全,请及时绑定邮箱和手机立即绑定

如何检查用户是否有过去 1 小时的 X 条记录?

如何检查用户是否有过去 1 小时的 X 条记录?

PHP
慕工程0101907 2022-01-02 14:51:49
我想检查用户在过去一小时内在我的 MySQL 数据库中是否有 5 条记录。这就是我现在的做法:$link = mysqli_query($link, "SELECT * FROM find_points WHERE timestamp > '.time()-3600.' AND user_id = '1' ORDER BY id DESC");if(mysqli_num_rows($link) >= 5) {   echo 'more than 5 results';}看起来它应该工作,但它不起作用......
查看完整描述

2 回答

?
忽然笑

TA贡献1806条经验 获得超5个赞

请使用以下查询

SELECT * FROM find_points WHERE TIMESTAMPDIFF( hour,  timestamp , now() ) > 1  AND user_id = '1' ORDER BY id DESC

您可以阅读有关TimestampDiff 的手册

它可用于以各种格式运行 2 个日期之间的差异。

请检查SqlFiddle上的Demo 它显示了 TimestampDiff 如何返回结果,您可以在 WHERE 子句中使用相同的结果。

更新

根据您的评论,时间戳存储为 Unix 时间戳,您可以使用以下查询:

SELECT * FROM find_points WHERE TIMESTAMPDIFF( hour,  FROM_UNIXTIME(timestamp) , now() ) > 1  AND user_id = '1' ORDER BY id DESC

FROM_UNIXTIME将您的 UNIX 时间戳转换为日期时间格式。然后,您可以将其传递给TIMESTAMPDIFF它将计算差异并返回小时数。

希望这可以帮助。


查看完整回答
反对 回复 2022-01-02
?
BIG阳

TA贡献1859条经验 获得超6个赞

“SELECT * FROM find_points WHERE timestamp > DATE_ADD(NOW(), INTERVAL 1 HOUR) AND user_id = '1' ORDER BY id DESC”


查看完整回答
反对 回复 2022-01-02
  • 2 回答
  • 0 关注
  • 241 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号