-2

我有一张桌子Item ( id, itemType)itemType可以是 1-5。

我想使用 mysql 检索每种类型的 2 个项目。

我试过

select * from `item` ORDER BY `itemType` limit 2 

这给了我按类型订购的 2 件商品,但我想要每种类型的 2 件商品。

http://sqlfiddle.com/#!9/ef83d/1

4

1 回答 1

0

你可以使用下面的查询,即使我没有用数据检查它,因为我没有样本数据,所以如果你遇到任何问题,那么你可以创建一个 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;

即使您可以根据最高价格或任何其他领域进行订购。

于 2015-08-11T05:11:32.860 回答