鍍金池/ 問(wèn)答/數(shù)據(jù)庫(kù)/ mysql分組查詢出每組的前10條數(shù)據(jù)

mysql分組查詢出每組的前10條數(shù)據(jù)

版塊表section:
版塊表section

文章表article:
文章表article

需求為一次查詢出所有版塊字段,和屬于這個(gè)版塊的前10條文章(字段id,title,content即可),其中article中的sid對(duì)應(yīng)section中的id

回答
編輯回答
墨小白

可以這么操作:

SELECT *, result.row_number
FROM
  (SELECT *, (@num:=IF(@group = `sid`, @num +1, IF(@group := `sid`, 1, 1))) row_number
    FROM article
    ORDER BY sid) result
WHERE row_number <= 10
;

article表按照sid排序,然后每一行記錄一個(gè)row_number,這個(gè)row_number的計(jì)算方法如上。

希望能幫助到你。

2018年7月14日 06:51