我有一张带有时间跨度块的桌子。
时间跨度具有开始日期和天数
表中有不重叠的时间跨度,例如:
2012-01-01 + 5 天和 2012-05-01 + 3 天并且有重叠的时间跨度,例如:
2012-01-01 + 5 天和 2012-01-03 + 3 天但是,我对连续发生的那些最感兴趣,例如:
2012-01-01 + 5 天和 2012-01-06 + 3 天和 2012-01-09 + 13 天
我需要一个通常选择 1. 和 2. 的查询(每个条目作为单行)。
案例 3. 必须选择组合为单行,例如
2012-01-01 + 5天和 2012-01-06 + 3天 = 2012-01-01 + 8天
2012-01-01 + 5 天和 2012- 01-06 + 3天和 2012-01-09 + 13天 = 2012-01-01 + 21 天
这是一个示例数据库:
CREATE TABLE IF NOT EXISTS `chunks` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`start` date NOT NULL,
`length` smallint(4) unsigned NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM ;
INSERT INTO `chunks` (`id`, `start`, `length`) VALUES
(1, '2012-01-01', 5),
(2, '2012-05-01', 3),
(3, '2012-01-03', 3),
(4, '2012-01-06', 3),
(5, '2012-01-09', 13);
这对 MySQL 可行吗?或者以后用Java更好地完成?