本帖最后由 rwxdfbb 于 2011-03-04 22:00:46 编辑

解决方案 »

  1.   

    SELECT t1.*,#选择时间之差
    TIMESTAMPDIFF(SECOND, (select `time` from test t2 where t2.`time` < t1.`time` order by `time` DESC limit 1 ), t1.`time`) as difftimeFROM test t1ORDER BY t1.`time` DESC
    虽然可以这样用,但是实在不推荐这样用完全可以在php(或者其他程序)中,读取 N + 1条数据,用循环的方式计算
    $data[$key]['time] 和 $data[$key+1]['time]的差
      

  2.   

    非常感谢“独自流浪”,给了我很大的启示,之前一直疑惑的是内层和外层查询的字段该如何区分,想不到给每层表起个别名就可以了!真是太感谢了!不过我测试用TIMESTAMPDIFF来计算秒的时候,如果两次时间距离太远,超过一个小时,好想就不能正常显示了,我改了下,用下面的方法可实现(思想都一样):select *, UNIX_TIMESTAMP(time)-(select max(UNIX_TIMESTAMP(time)) from table t2 where t2.time<t1.time) as difftime
    from table t1
    order by t1.time desc