-1

我有一个 MySql 表,其中有两列,即类别和名称。我有 4 个唯一的类别值,并且该表中有数千条记录。但所有这些记录都属于表中的 4 个类别中的任何一个。

现在,我想要的是作为输出,我应该得到每个类别的 2 个结果,即第一个类别的 2 个结果,然后是下一个类别的 2 个结果,依此类推。

是否可以使用单个查询?

4

2 回答 2

0
set @num := 0, @cat := '';

select category,name
      @num := if(@cat = category, @num + 1, 1) as row_number,
      @cat := category as dummy
from MyTable
group by cateogry, name
having row_number <= 2;
于 2012-04-30T13:00:24.397 回答
-1

那这个呢?

SELECT * FROM your_table WHERE category = 1 LIMIT 2
UNION
SELECT * FROM your_table WHERE category = 2 LIMIT 2
UNION
SELECT * FROM your_table WHERE category = 3 LIMIT 2
UNION
SELECT * FROM your_table WHERE category = 4 LIMIT 2
于 2012-04-30T12:56:11.883 回答