有这样的表(fruits)
:
+--------------+-------------+------+-----+---------------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+-------------+------+-----+---------------------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| time | timestamp | NO | | CURRENT_TIMESTAMP | |
| fruit | varchar(16) | NO | | NULL | |
+--------------+-------------+------+-----+---------------------+----------------+
如何选择具有"行邻居"的行?在+/- 10秒的时间范围内?
这是我的样本数据:
INSERT INTO `fruits` VALUES (1,'2016-01-19 02:14:07','apple'),(2,'2016-01-19 02:14:13','banana'),(3,'2017-06-08 06:59:12','melon'),(4,'2017-06-08 06:57:12','strawberry');
这是我的预期结果集:
1 2016-01-19 02:14:07
2 2016-01-19 02:14:13
id为3和4的行在10秒内没有邻居(+/-)。
我以为我可以这样做:
SELECT TIME
FROM fruits
WHERE (DATE_SUB(TIME , INTERVAL 10 SECOND) > ANY
(SELECT TIME
FROM fruits))
AND (DATE_ADD(TIME , INTERVAL 10 SECOND) < ANY
(SELECT TIME
FROM fruits));
哪个效果不好而且非常复杂。