文章詳情頁
mysql - SQL取每個外鍵前幾條記錄
瀏覽:160日期: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. 在應用配置文件 app.php 中找不到’route_check_cache’配置項2. html按鍵開關如何提交我想需要的值到數據庫3. HTML 5輸入框只能輸入漢字、字母、數字、標點符號?正則如何寫?4. gvim - 誰有vim里CSS的Indent文件, 能縮進@media里面的5. 跟著課件一模一樣的操作使用tp6,出現了錯誤6. PHP類屬性聲明?7. objective-c - ios 怎么實現微信聯系列表 最好是swift8. javascript - 請教如何獲取百度貼吧新增的兩個加密參數9. html - 微信瀏覽器h5<video>標簽問題10. java - 安卓接入微信登錄,onCreate不會執行
排行榜
