2016-03-25 105 views
-2

ContentDetails表具有以下contentTypes。内容类型 - live,vod,movie。如何从一个表中使用mysql中的查询获取多个记录

每个contentType有100个reocr(live -100,vod-100,movie-100)。

我想从每个contentType多个记录。

查询:

SELECT * FROM (SELECT * FROM `ContentDetails ` ORDER BY `contentid ` ASC) AS a GROUP BY `contentType` limit 0,100; 

exceuting aove查询得到以下结果之后。

只有一个活,一个vod和一个电影来。

但我的要求是:

10直播内容,10个视频点播节目,10分电影含量研究。

回答

1

可能是你想从每个内容类型10个项目,如果是的话那么你可以在下面的query

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; 
+0

坦克你它工作正常使用。但我不明白上面的查询。你能解释这个问题吗? –

+0

如果它有帮助..你可以选择这个绿色棒接受答案。 :) –

相关问题