文章詳情頁
mysql - SQL取每個外鍵前幾條記錄
瀏覽:135日期: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. MySQL的聯(lián)合查詢[union]有什么實(shí)際的用處2. 數(shù)組排序,并把排序后的值存入到新數(shù)組中3. mysql 遠(yuǎn)程連接出錯10060,我已經(jīng)設(shè)置了任意主機(jī)了。。。4. 網(wǎng)頁爬蟲 - python 爬取網(wǎng)站 并解析非json內(nèi)容5. 默認(rèn)輸出類型為json,如何輸出html6. python的正則怎么同時匹配兩個不同結(jié)果?7. mysql怎么表示兩個字段的差8. win10 python3.5 matplotlib使用報錯9. PHP訂單派單系統(tǒng)10. php多任務(wù)倒計時求助
排行榜

熱門標(biāo)簽