国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術文章
文章詳情頁

mysql - SQL取每個外鍵前幾條記錄

瀏覽:155日期: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;

相關文章:
主站蜘蛛池模板: 金乡县| 吴旗县| 贵德县| 罗平县| 黄浦区| 神池县| 宜兰市| 阿城市| 麻栗坡县| 邯郸县| 轮台县| 澜沧| 汾阳市| 新乡市| 陆丰市| 宜宾县| 南丰县| 台中县| 修武县| 鱼台县| 黄山市| 太湖县| 纳雍县| 阿尔山市| 元谋县| 博兴县| 新乡市| 大姚县| 洛川县| 夏津县| 伊金霍洛旗| 原平市| 岗巴县| 保靖县| 玛纳斯县| 大庆市| 临城县| 顺平县| 灌南县| 高邑县| 柞水县|