-1

カテゴリと名前という 2 つの列を持つ 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 に答える