如果这对某些人来说是一个非常简单的问题,我深表歉意。
假设我正在使用 PK 查找来查询一个非常简单的表:
- 用户 ID -> int (PK)
- 正文 -> varchar
- 时间 -> 整数
时间是标准 UNIX 时间戳。 (从纪元开始的秒数)
我想从该用户 ID 的最后一个条目中返回一个月的结果。
现在一个明显的解决方案是跟踪其他地方最近插入的时间,并在每次插入/删除或更新记录时更新它,并根据该值执行范围查询。
因此我的问题是:这是一种更简单/优雅的方法吗?我的想法是否正确,或者 MySQL 中是否有一些我不知道的内置功能?
提前致谢。
最佳答案
没有这样的内置函数。您需要做的(除非您执行您已经建议的额外表)是进行自连接。类似的东西(未经测试,来 self 的头脑)
select *
from [yourtable] t1
join [yourtable] t2
using (userid)
where t1.userid = [userid]
and t1.time is between t2.time and date_sub(t2.time, interval 1 month);
关于mysql - 如何根据 MySQL 中最后插入的 PK 匹配指定基于时间的范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12787897/