2016-03-25 136 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

如果它有幫助..你可以選擇這個綠色棒接受答案。 :) –

相關問題