2012-07-25 4 views
1

카테고리별로 쿼리를 제한하고 싶습니다. 여기에서 같은 주제를 많이 보았지만 너무 복잡하여 다른 질문을하게됩니다. 예를 들어카테고리 당 php-sql 한도 쿼리

나는

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

하고 난 내가 갖는 경우 내가 말해이

one 
two 

a 
b 
+1

의 중복 가능성 http://stackoverflow.com/questions/2129693/ mysql을 사용하는 그룹 내 그룹당 결과 제한 – pankar

+0

어떤 종류의 데이터베이스를 사용하고 있습니까? – Robert

+0

@ 로버트 cpanel에 의해 구동되는 phpmyadmin을 사용하고 있습니다 –

답변

-3

처럼 내 출력이 카테고리 당이 말을하자, 내 쿼리를 제한하고 싶었다 당신이 바로 -는 SQL의
-

내가 무슨 짓을
SELECT * FROM `categories` ORDER BY `id` ASC LIMIT 0,2 

이 있습니다 : 실리 카테고리 테이블에있는 모든 항목을 ct로 정렬하고 id 행으로 정렬하고 두 개의 결과에 대해서만 제한하고 빈틈없이 정렬하십시오.

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; 
+0

저는 뉴비를 여기에두고 있습니다 ... "num : = 0, category : = '';"를 넣어야 할 곳은 이 라인에서 오류가 발생했습니다 –

+0

PHP를 통해 이렇게하려면? PHPMyAdmin을 사용하면 SQL 상자에 넣을 수 있습니다. – RobertDiep

1

I있어이 같은 질문에 떨어질 것이다 나는 다른 사람을 위해 여기에 게시합니다 사랑하는 주제 에서 대답

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 
+0

이것은 매력처럼 작동합니다. – Grant

관련 문제