我得到了下表:https://i.gyazo.com/0ff46d51d29aed52d92434df9e91e178.png
我得到了以下不起作用的查询:
select * from viewed u1 inner join viewed u2 on (u2.user_id = u1.user_id) where TIMESTAMPDIFF(SECOND, u1.date_reg, u2.date_reg) < 5;
我试图找出哪个用户获得了date_reg时间小于x秒的条目。如果我们查看图像,应该选择两个用户,因为他们得到了date_reg相差0-1秒的行。
问题是查询没有按预期工作,因为它几乎选择了表中的所有行。有人知道我怎么知道哪个用户在表格中有不同的x秒差异?
答案 0 :(得分:2)
您需要另一个条件,因此timestampdiff()
始终是正面的。我建议:
select *
from viewed u1 inner join
viewed u2
on u2.user_id = u1.user_id
where u1.date_reg < u2.date_reg and
TIMESTAMPDIFF(SECOND, u1.date_reg, u2.date_reg) < 5;