文章詳情頁
mysql - SQL取每個外鍵前幾條記錄
瀏覽:99日期:2022-06-19 16:33:56
問題描述
如果我有張SQL表 有一列(一般是外鍵)是 B我想取B值為 1,2,3 的記錄 但是每個值最多只去8條記錄就夠了除了:
SQL全部取出來,再在程序里處理獲取每個8條(缺點(diǎn):如果記錄很多的話浪費(fèi)資源)
運(yùn)行3條SQL,一個個值的8條取出來(缺點(diǎn),如果我要取的值不止3個的話 要執(zhí)行的SQL太多?)
還有其他更好的辦法嗎?
PS:我試用在MySQL用 UNION 語句行不通,因?yàn)閁NION 只有最后一個limit 起作用。
問題解答
回答1:假設(shè)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;
相關(guān)文章:
1. javascript - jquery選擇的dom元素如何更新?2. 視頻 - html5 video的autoplay 在智能手機(jī)上不運(yùn)作?3. javascript - H5頁面無縫輪播4. python - Django問題 ’WSGIRequest’ object has no attribute ’user’5. mysql輸入賬號密碼后跳出一大堆內(nèi)容后但卻進(jìn)不了mysql?6. javascript - URL中有#號如何來獲取參數(shù)啊? nodejs7. mysql服務(wù)無法啟動1067錯誤,誰知道正確的解決方法?8. .......9. 數(shù)據(jù)庫 - mysql boolean型無法插入true10. python - flask jinjia2 中怎么定義嵌套變量
排行榜

熱門標(biāo)簽