id gbid  title addtime
1  1 test1 2006-8-3 00:12:00
2  2 test2 2006-8-3 01:12:00
3  3 test3 2006-8-3 02:12:00
4  1 test4 2006-8-3 03:12:00
5  2 test5 2006-8-3 04:12:00
6  3 test6 2006-8-3 05:12:00
7  1 test7 2006-8-3 06:12:00
8  2 test8 2006-8-3 07:12:00
9  3 test9 2006-8-3 08:12:00运行
select * from tb group by gbid
后,返回的结果:
1  1 test1 2006-8-3 00:12:00
2  2 test2 2006-8-3 01:12:00
3  3 test3 2006-8-3 02:12:00但我现在要返回的结果时:
7  1 test7 2006-8-3 06:12:00
8  2 test8 2006-8-3 07:12:00
9  3 test9 2006-8-3 08:12:00

解决方案 »

  1.   

    SELECT MAX(addtime) FROM `tb` GROUP BY  gbid;
      

  2.   

    select * from tb group by gbid order by addtime DESC
    这样看行不行。
      

  3.   

    to wen8u8
    我要取的不只是 addtime 哪to bixinxuanke
    那种做法是不可行的
      

  4.   

    你真晕,再加你想要的字段在上面不行吗?
    SELECT MAX(addtime),title,id.............. FROM `tb` GROUP BY  gbid;
      

  5.   

    to wen8u8 :
    SELECT MAX(addtime),title,id.............. FROM `tb` GROUP BY  gbid;只是取到了最新的addtime ,但没有取到任何新的其它信息
      

  6.   


    select * from tb where (gbid, addtime) in 
      ( select gbid, max(addtime) from tb group by gbid )
      

  7.   

    to helloyou0(你好!)
    我忘记了说 我的 MySQL 不是 5不过我使用临时表解决了