文章詳情頁
mysql - SQL取每個外鍵前幾條記錄
瀏覽:154日期:2022-06-19 16:33:56
問題描述
如果我有張SQL表 有一列(一般是外鍵)是 B我想取B值為 1,2,3 的記錄 但是每個值最多只去8條記錄就夠了除了:
SQL全部取出來,再在程序里處理獲取每個8條(缺點:如果記錄很多的話浪費資源)
運行3條SQL,一個個值的8條取出來(缺點,如果我要取的值不止3個的話 要執行的SQL太多?)
還有其他更好的辦法嗎?
PS:我試用在MySQL用 UNION 語句行不通,因為UNION 只有最后一個limit 起作用。
問題解答
回答1:假設fid是外鍵字段,id是主鍵字段
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;
相關文章:
1. javascript - vscode alt+shift+f 格式化js代碼,通不過eslint的代碼風格檢查怎么辦。。。2. javascript - 如何將一個div始終固定在某個位置;無論屏幕和分辨率怎么變化;div位置始終不變3. html5 - 有可以一次性把所有 css外部樣式轉為html標簽內style=" "的方法嗎?4. javascript - 有什么比較好的網頁版shell前端組件?5. java - 如何寫一個intellij-idea插件,實現編譯時修改源代碼的目的6. javascript - 原生canvas中如何獲取到觸摸事件的canvas內坐標?7. java 中Long 類型如何轉換成Double?8. javascript - 求解答:實例對象調用constructor,此時constructor內的this的指向?9. html - vue項目中用到了elementUI問題10. javascript - [js]為什么畫布里不出現圖片呢?在線等
排行榜
