如何选择时差小于X分钟的记录?

时间:2013-04-04 07:48:02

标签: mysql

我需要找到时间差小于X分钟的表格中的所有记录吗?
看起来我需要:
- 按时间排序表(unix时间),
- 查找表中的当前记录和以前的记录,
- 检查当前时间和以前时间的差异,
- 如果时间少于X分钟,则记录<

但是如何编写这个Mysql请求?


我的表:

id bigint(10)NOT NULL AUTO_INCREMENT,
  uid int(11)DEFAULT'0',
  cid int(11)NOT NULL DEFAULT'0',
  uniqueid int(11)NOT NULL,
  publisher varchar(255)CHARACTER SET utf8 NOT NULL,
  booktitle varchar(255)CHARACTER SET utf8 NOT NULL,
  level varchar(50)CHARACTER SET utf8 NOT NULL,
  readinglevel int(11)NOT NULL,
  status int(11)NOT NULL DEFAULT'0',
  words int(11)NOT NULL DEFAULT'0',
  persent float(7,2)DEFAULT'0.00',
  time bigint(10)DEFAULT'0',

1 个答案:

答案 0 :(得分:3)

- 首先关闭所有时间列应该是时间戳类型(4B)而不是bigint(8B)

-let假设时间列是时间戳而X = 1则可以尝试这样的事情:

SELECT
    first.id,
    second.id
FROM
    my_table as first
INNER JOIN my_table as second
    ON second.time >= first.time
    ON second.time <= DATE_ADD(first.time, INTERVAL 1 MINUTE)
WHERE 1

但是我警告你效率极低,特别是如果你没有时间列索引。