2010-02-12 4 views

답변

18

주문 및 제한 결과 :

SELECT field1, field2 
FROM myTable 
ORDER BY field1 ASC 
LIMIT 10 
+0

이 질문에 대한 답은 정확 합니다만, Pascal MARTIN의 답변을 검토해보아야합니다. – HPWD

0

예, limit 조항이있다.

예 :

SELECT * FROM `your_table` LIMIT 0, 10 

이 데이터베이스에서 제 10의 결과를 표시한다.

+0

@ 파스칼 : 그를 칭찬, 나는 그의 포괄적 인 대답을 좋아하고 그는 또한 빠르다, 당신은 사람이 아니에요, 당신은 내가 파스칼의 대답에 내 코멘트를 넣어 참조하십시오 :) – Sarfraz

3

당신은LIMIT 키워드 합니다 (documentation of the SELECT instruction 참조)를 사용할 수 있습니다 - 그것은 쿼리의 마지막에 배치됩니다 :

select * 
from your_table 
where ... 
limit 10 

상위 10 라인을 얻을 수


심지어 :

select * 
from your_table 
where ... 
limit 5, 10 

10 줄을 얻으려면 6 번째 (즉, 점점 6-15).

+0

그것은 테이블의 모든 데이터를 조작 할 것인가 ?? – Avinash

+1

이 남자는 항상 그의 대답, 위대한 물건 남자와 함께 멋지고 빠르다 :) – Sarfraz

+0

@ 아빈 쉬 : 나는 모든 상황에 맞는 확실한 대답을 줄 수 있을지 모르지만 어떤 경우에는 조작 할 것이다. * 더 많은 데이터를 원한다면 (예를 들어,'order by' 절이있을 때,'limit'은'order by'가 계산 된 후에 만 ​​적용될 수 있습니다.) 분명히) * ;;; @Safraz : 감사합니다 ;-) –

2

더욱 더 약 LIMIT 찾을 수 있습니다 나는 약간의 성능 고려 사항을 추가 할 의해이 질문에 대한 답이 알고있다. MySQL의 TOP 연산자가 LIMIT로 변환되지 않았습니다.

당신이 DB에 삽입 된 마지막 10 명을 취득한다고 가정 : 행의 수천을 사용하는 경우
SELECT name, id 
FROM persons 
ORDER BY id DESC 
LIMIT 10 

그러나이 매우 느린되었다 할 수있다.

훨씬 빠른 솔루션은 현재 행 번호 X 검색 될 것이다 :

SELECT COUNT(*) FROM persons 

을하고 지난 10 쿼리에 해당 번호를 사용

SELECT name, id 
    FROM persons 
    LIMIT x-10,10 

을 따라서 한계는 첫째 X 건너 뜁니다 -10 행을 반환하고 다음 10을 반환합니다. 이것은 열을 정렬하는 것보다 100 배 더 빠릅니다. 그러나 이것은 내 경험 일뿐입니다.

+0

'COUNT (*) FROM persons SELECT'에서 시간을 보냈습니까? –

+0

기본 정렬에 의존해서는 안됩니다 : http://stackoverflow.com/a/8746712/358813 비 결정적입니다. – tacone

관련 문제