MySQL에서와 같이 TOP 키워드의 대안을 알고 싶습니다. SQL 서버에서 TOP에 대해 읽었습니다.MySQL의 TOP에 대한 대안이 있습니까?
MySQL 또는 이와 유사한 기능을 사용할 수있는 다른 MySQL의 다른 방법이 있습니까?
MySQL에서와 같이 TOP 키워드의 대안을 알고 싶습니다. SQL 서버에서 TOP에 대해 읽었습니다.MySQL의 TOP에 대한 대안이 있습니까?
MySQL 또는 이와 유사한 기능을 사용할 수있는 다른 MySQL의 다른 방법이 있습니까?
주문 및 제한 결과 :
가SELECT field1, field2
FROM myTable
ORDER BY field1 ASC
LIMIT 10
당신은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).
더욱 더 약 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 배 더 빠릅니다. 그러나 이것은 내 경험 일뿐입니다.
'COUNT (*) FROM persons SELECT'에서 시간을 보냈습니까? –
기본 정렬에 의존해서는 안됩니다 : http://stackoverflow.com/a/8746712/358813 비 결정적입니다. – tacone
이 질문에 대한 답은 정확 합니다만, Pascal MARTIN의 답변을 검토해보아야합니다. – HPWD