如何按 mysql 中的限制顺序获取项目

How to get Items in order with limit in mysql

我有一个tableItem ( id, itemType)itemType 可以是 1-5。

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

我试过了

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

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

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

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

您甚至可以根据最高价格或任何其他字段进行排序。