我正在开发一个 PHP + MySQL 应用程序。我有一个表格,其中包含期间的开始日期和结束日期。期间可以重叠。例子:
ID Start End
1 01/05/2015 31/05/2015
2 01/06/2015 30/06/2015
3 15/06/2015 25/06/2015 (this record overlaps record with ID 2)
4 17/06/2015 22/06/2015 (this record overlaps records with IDs 2 and 3)
我需要选择所有记录,按开始日期和结束日期排序,还需要拆分重叠记录并保留它们的 ID。我的意思是我最终需要得到这个:
ID Start End
1 01/05/2015 31/05/2015
2 01/06/2015 14/06/2015
3 15/06/2015 16/06/2015
4 17/06/2015 22/06/2015
3 23/06/2015 25/06/2015
2 26/06/2015 30/06/2015
我可以通过选择所有句点然后在 PHP 中对它们进行排序/拆分来做到这一点,但我想知道我是否可以在数据库层上做到这一点?
请有人至少指出我正确的方向吗?