我需要找到时间差小于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',
答案 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
但是我警告你效率极低,特别是如果你没有时间列索引。