2019-02-25
閱讀量:
767
SQL取每個外鍵前幾條記錄
問題描述:
如果有張SQL表 有一列(一般是外鍵)是 B
想取B值為 1,2,3 的記錄 但是每個值最多只去8條記錄就夠了
除了:
- SQL全部取出來,再在程序里處理獲取每個8條(缺點:如果記錄很多的話浪費資源)
- 運行3條SQL,一個個值的8條取出來(缺點,如果我要取的值不止3個的話 要執(zhí)行的SQL太多?)
還有其他更好的辦法嗎?
解決方法:
select fid, id from (select fid, id, @rank := if(@current_fid = fid, @rank + 1, 1) as rank, @current_fid := fid from your_table order by fid, id desc) ranked where rank <= 8;






評論(0)


暫無數據
推薦帖子
0條評論
0條評論
0條評論