如何在mysql中使用group by query从一个表中获取多个记录

时间:2016-03-25 06:00:50

标签: mysql

ContentDetails表具有以下contentTypes。 contentType - live,vod,movie。

每个contentType有100个reocrds(实时-100,vod-100,电影-100)。

我想要每个contentType的多条记录。

查询:

{{1}}

将aove查询排除在低于结果之后。

只有一部直播,一部电影和一部电影。

但我的要求是:

10个实况内容,10个内容和10个电影竞赛。

1 个答案:

答案 0 :(得分:1)

您可能希望每种内容类型有10个项目,如果是,那么您可以使用以下查询 -

SELECT x.*
FROM (SELECT t.*,
               CASE 
                 WHEN @category != t.contentType THEN @rownum := 1 
                 ELSE @rownum := @rownum + 1 
               END AS rank,
               @category := t.contentType AS var_category
          FROM contentDetails t
          JOIN (SELECT @rownum := NULL, @category := '') r     
      ORDER BY t.contentType,t.contentid) X
      WHERE x.rank<=10;