附加标签MySQL的内容

  • MySQL 获取所有分类和每个分类的前几条记录

    比如有文章表 Article(Id,Category,InsertDate)

    现在要用SQL找出每种类型中时间最新的前N个数据组成的集合

    SELECT A1.*  
    FROM Article AS A1  
         INNER JOIN (SELECT A.Category,A.InsertDate 
                     FROM Article AS A  
                          LEFT JOIN Article AS B  
                            ON A.Category = B.Category  
                               AND A.InsertDate <= B.InsertDate  
                     GROUP BY A.Category,A.InsertDate 
                     HAVING COUNT(B.InsertDate) <= @N 
        ) AS B1  
        ON A1.Category = B1.Category  
           AND A1.InsertDate = B1.InsertDate 
    ORDER BY A1.Category,A1.InsertDate DESC 

    @N 就是要取多少条

    标签: SQL, MySQL