SELECT *
    FROM table
   WHERE BigClass in (1,2,3)
GROUP BY BigClass
ORDER BY PostTime;

解决方案 »

  1.   

    说明一下在我实际的查询情况SELECT ID, PublishTime FROM news WHERE BigClassID=132 LIMIT 0,30
    结果为:
          ID  PublishTime  
          73 2005-12-26 12:00:46 
          74 2005-12-26 13:36:30 
          75 2005-12-26 13:37:13 
          80 2005-12-26 13:41:11 说明132类别的信息编号为80的比73的新用:SELECT ID,BigClassID,PublishTime FROM news
    WHERE BigClassID IN ( 3, 21, 132, 12, 16 ) 
    GROUP BY BigClassID
    ORDER BY PublishTime DESC 
    LIMIT 0,30;查询结果:
          ID  BigClassID  PublishTime  
          84  16  2006-03-31 14:10:29 
          52  21  2006-03-02 14:11:03 
          9   3   2005-12-29 20:59:21 
          81  12  2005-12-26 13:44:33 
          73  132  2005-12-26 12:00:46 说明132类别的取出来的是73而不是80这条信息。
      

  2.   

    数据库什么版本?
    以下效率很低,仅仅抛一下砖。
    select * from (select * from data_news order by PostTime desc) a group by BigClass
      

  3.   

    谢谢,好像是对了,比我之前用的:SELECT * FROM news a WHERE PostTime= (
    SELECT PostTime FROM news b WHERE a.BigClass = b.BigClass ORDER BY PostTime DESC,ID desc LIMIT 1 
    ) LIMIT 5感觉要好,我先多试试