2011-07-17 97 views
0

我有这样的(再加上10列)包含的表超过100万的频繁更新的记录:发现日期间隔开始和结束日期

id pid start_date   end_date 
    1 761 2011-07-25 00:00:00 2011-08-01 00:00:00 
    2 761 2011-08-01 00:00:00 2011-08-22 00:00:00 
    3 761 2011-08-22 00:00:00 2011-09-19 00:00:00 
    4 802 2011-08-22 00:00:00 2011-09-19 00:00:00 
    5 761 2011-06-05 00:00:00 2011-07-05 00:00:00 

,并希望得到结果为特定的PID( 761与所有连续间隔结合下面的例子):

id pid start_date   end_date 
    1 761 2011-07-25 00:00:00 2011-09-19 00:00:00 
    5 761 2011-06-05 00:00:00 2011-07-05 00:00:00 

目前,我在代码中这样做,但想完全移到此功能的分贝侧。 任何想法如何做到这一点?

编辑:start_date和end_date列是DATETIME类型。

+0

你有你会运行查询的时间了'pid'价值? – Shef

+0

@Shef - 是的,运行查询时确实有pid值。 – orom

+0

“start_date”和“end_date”列是否为DATETIME类型? – Shef

回答

0

这在代码中做得更好。循环遍历行,当它用于同一产品时,更新结束日期,否则创建一个新的数组条目。

对于如此复杂的,这是在SQL的想法,认为并购y attempt at solving this in SQL Server :)

+0

它从性能pov看起来很复杂。另外我不确定它是如何轻松移植到mysql的,但它确实给了我许多提示。谢谢! – orom

+0

由于没有其他答案,我将此标记为已接受。 – orom

相关问题