文章詳情頁
mysql - SQL取每個外鍵前幾條記錄
瀏覽:114日期: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. 在windows下安裝docker Toolbox 啟動Docker Quickstart Terminal 失敗!2. golang - 用IDE看docker源碼時的小問題3. 為什么我ping不通我的docker容器呢???4. docker - 各位電腦上有多少個容器啊?容器一多,自己都搞混了,咋辦呢?5. php - TP5的登錄驗證問題6. phpstudy 發現多個后門木馬,有人遇到過嗎?7. node.js - MongoDB安裝啟動8. php如何獲取訪問者路由器的mac地址9. mysql 創建root 用戶出錯,這是什么原因?mysql 中也沒有root用戶10. mysql導入sql大文件語句?
排行榜
