我需要找到表中时差小于X分钟的所有记录?
看起来我需要:
-按时间(unix时间)对表排序,
查找表中当前记录和先前记录
-检查当前时间和以前时间的差异,
-如果时间少于X分钟,则记录
但是这个Mysql请求是怎么写的呢?
My Table:
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)字符集utf8 NOT NULL,booktitle
varchar(255)字符集utf8 NOT NULL,level
varchar(50)字符集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',
-首先你所有的时间列应该是一个时间戳类型(4B)而不是bigint (8B)
—让我们假设时间列是一个时间戳并且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
但是我警告你,它的效率非常低,特别是当你没有索引的时间列