2015-01-05 5 views
1

"시간이 생성 된"및 "좋아하는 수"열이있는 행을 표시하는 응용 프로그램을 개발하고 있습니다.MySQL - 한계에 대해 하나의 열에 의해 다음 다른 제한에 의해 다른 열에 의해 주문

나는 가장 많이 좋아하는 행과 가장 최근의 날짜까지 남은 95 개의 중복 행을 사용하여 쿼리의 처음 5 개의 결과를 반환하려고합니다.

현재 쿼리는 날짜순으로 만 수행합니다.

"SELECT * FROM `$category` ORDER BY time DESC LIMIT 100" 

하나의 쿼리에서 가능한 작업을 시도하고 있습니까? 아니면 두 개의 쿼리를 수행하고 중복 행을 필터링해야합니까?

답변

1

UNION은 중복 행을 자동으로 제거하며 전체 쿼리에는 LIMIT이 적용됩니다.

(SELECT *, like_count AS likes FROM category ORDER BY like_count DESC LIMIT 5) 
UNION 
(SELECT *, 0 AS likes FROM category ORDER BY time DESC) 
ORDER BY likes DESC, time DESC 
LIMIT 100 
+0

수정 한 응답 반환 결과 집합의 첫 번째 5 개 항목이 좋아하는의 숫자로 시간이 아니라 분류되어 –

+0

중복 행을. – axiac

+0

내 업데이트를 확인하십시오. –

관련 문제