我有一张桌子Item ( id, itemType)
。itemType
可以是 1-5。
我想使用 mysql 检索每种类型的 2 个项目。
我试过
select * from `item` ORDER BY `itemType` limit 2
这给了我按类型订购的 2 件商品,但我想要每种类型的 2 件商品。
我有一张桌子Item ( id, itemType)
。itemType
可以是 1-5。
我想使用 mysql 检索每种类型的 2 个项目。
我试过
select * from `item` ORDER BY `itemType` limit 2
这给了我按类型订购的 2 件商品,但我想要每种类型的 2 件商品。
你可以使用下面的查询,即使我没有用数据检查它,因为我没有样本数据,所以如果你遇到任何问题,那么你可以创建一个 sqlfiddle,这样我就可以根据你在#sql 中自定义查询
SELECT x.id,x.type1 as 'Type'
FROM (SELECT t.*,
CASE
WHEN @type != t.type THEN @rownum := 1
ELSE @rownum := @rownum + 1
END AS rank,
@type := t.type AS 'type1'
FROM item t
JOIN (SELECT @rownum := NULL, @type := '') r
ORDER BY t.type,t.id) X
WHERE x.rank<=2;
即使您可以根据最高价格或任何其他领域进行订购。