每个类别的php-sql限制查询

时间:2012-07-25 10:40:00

标签: mysql limit categories

我想限制每个类别的查询,我在这里看到了很多相同的主题但过于复杂,所以我会问另一个。

例如我有

id       title        category
1        one          number
2        two          number
3        three        number  
4        four         number
5        a            letter
6        b            letter
7        c            letter

我想限制我的查询,比方说每个类别2,所以我的输出就像这些

one
two

a
b

3 个答案:

答案 0 :(得分:1)

我从diff主题得到了答案 我会在这里发布给其他将会同样提出这个问题的人

SELECT * FROM (
    SELECT
       table.*,
       @rn := CASE WHEN @category=category THEN @rn + 1 ELSE 1 END AS rn,
       @category := category
    FROM table, (SELECT @rn := 0, @category := NULL) AS vars        
    ORDER BY category
) AS T1
WHERE rn <= 2

答案 1 :(得分:0)

使用this link创建,那里有一个解释。这也适用于大量类别,但要注意,如果没有定义正确的密钥,它可能变得非常

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

select title, category, @num := if(@category = category, @num +1, 1) as row_number,
@category := category as dummy

from test
group by category, title
having row_number <=2;

答案 2 :(得分:-3)

告诉我,如果我找对你 -
那是sql -

SELECT * FROM `categories` ORDER BY `id` ASC LIMIT 0,2 

我做的是:选择类别表中的所有项目并按id行排序,仅限两个结果并从开始订购