久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

mysql - SQL取每個(gè)外鍵前幾條記錄

瀏覽:145日期:2022-06-19 16:33:56

問(wèn)題描述

如果我有張SQL表 有一列(一般是外鍵)是 B我想取B值為 1,2,3 的記錄 但是每個(gè)值最多只去8條記錄就夠了除了:

SQL全部取出來(lái),再在程序里處理獲取每個(gè)8條(缺點(diǎn):如果記錄很多的話浪費(fèi)資源)

運(yùn)行3條SQL,一個(gè)個(gè)值的8條取出來(lái)(缺點(diǎn),如果我要取的值不止3個(gè)的話 要執(zhí)行的SQL太多?)

還有其他更好的辦法嗎?

PS:我試用在MySQL用 UNION 語(yǔ)句行不通,因?yàn)閁NION 只有最后一個(gè)limit 起作用。

問(wèn)題解答

回答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)文章:
主站蜘蛛池模板: 和田市| 大厂| 大竹县| 山阴县| 方山县| 文水县| 西丰县| 富民县| 怀安县| 夏津县| 塔河县| 通州区| 东源县| 吉林市| 盐源县| 万荣县| 南康市| 晋宁县| 平塘县| 岗巴县| 呼图壁县| 保德县| 霍林郭勒市| 洞口县| 长沙市| 剑阁县| 淄博市| 寿光市| 太谷县| 景洪市| 邵东县| 梁山县| 运城市| 革吉县| 镇赉县| 喜德县| 湖州市| 罗江县| 浑源县| 汉寿县| 共和县|