2011-09-05 6 views
3

mysql 쿼리에서 마지막 10 개의 결과 만 표시하려면 어떻게해야합니까?결과를 마지막으로 제한합니다.

결과를 출력 할 때 지난 10 개의 결과가 무시되기 이전의 모든 것을 무시하고 싶습니다.

<?php 
$query = mysql_query("SELECT * FROM graphs WHERE sid=2 ORDER BY id"); 
while($info = mysql_fetch_array($query)){ 
    $graph_id = $info['id']; 
    $graph_info = $info['labels']; 
    $graph_fig = $info['figures']; 

    echo "<label>" . $graph_info .":<span style='background-color: #06F;'>" . $graph_fig . "</span></label>"; 
} 
?> 

편집 나는 결과가 id 컬럼으로 분류 오름차순으로 표시되어야 함을 언급하는 것을 잊었다.

답변

8
SELECT * FROM (SELECT * FROM graphs WHERE sid=2 ORDER BY id DESC LIMIT 10) g ORDER BY g.id 

될 것입니다.

+0

완벽하게 작동합니다. 치명적이다! – Turnip

+0

젠장! 이것은 항상 신선한 게시물에 답변 할 때 내가 가지고있는 문제입니다. :) 이것은 당신이 찾고있는 대답입니다. –

4

설명 : 기본적으로 ORDER BY는 오름차순 (ORDER BY ASC)으로 정렬됩니다. 내림차순 (DESC)을 지정하여 역순으로 정렬하면 LIMIT 10이 상위 10 개의 결과를 얻습니다.

+0

첫 번째 결과가 10 개로 제한됩니다. 나는 마지막으로 10을 원한다. – Turnip

+1

'desc '를 주목하라. – CodeCaster

+0

죄송합니다, 네 말이 맞습니다. 그러나 나는 그것들이 역순으로 표시되는 것을 원하지 않는다. 주문을 어떻게 바꿀 수 있니? – Turnip

5

주문 하강 : 조회의 끝에

ORDER BY id DESC LIMIT 10 
3
ORDER BY id DESC LIMIT 10 

. 그것은 내림차순 귀하의 ID를 주문하고, 따라서 첫 번째 결과는 오름차순 순서로 여전히 지난 10 개 기록하지만 결과 집합을 가져 오기 최신

관련 문제