[SQL] MySQL은 TOP에 대한 대안이 있습니까?
SQLMySQL은 TOP에 대한 대안이 있습니까?
나는 MySQL의에서와 TOP 키워드의 대안을 알고 싶어요. 나는 SQL Server의 TOP에 대해 읽었습니다.
MySQL의에서이 (를) 대체 할 수있는 다른, 또는 우리가 동일한 기능을 얻을 수있는 MySQL의 다른 어떤 방법이 있습니까?
해결법
-
==============================
1.결과 주문 및 제한 :
결과 주문 및 제한 :
SELECT field1, field2 FROM myTable ORDER BY field1 ASC LIMIT 10
-
==============================
2.당신은 LIMIT 키워드합니다 (SELECT 명령의 설명서를 참조하십시오)를 사용할 수 있습니다 - 그것은 쿼리의 마지막에 배치됩니다 :
당신은 LIMIT 키워드합니다 (SELECT 명령의 설명서를 참조하십시오)를 사용할 수 있습니다 - 그것은 쿼리의 마지막에 배치됩니다 :
select * from your_table where ... limit 10
상위 10 라인을 얻을 수 있습니다
또는 :
select * from your_table where ... limit 5, 10
(즉, 점점 선 6 ~ 15)이 6 일부터 시작하여 10 선을 얻으려면.
-
==============================
3.나는 약간의 성능 고려 사항을 추가 할 의해이 질문에 대한 답이 알고있다. MySQL의에서 TOP 연산자는 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 배 빠른 속도로, 그러나 이것은 단지 내 경험이다.
-
==============================
4.예, 제한 조항이있다.
예, 제한 조항이있다.
예:
SELECT * FROM `your_table` LIMIT 0, 10
이 데이터베이스에서 처음 10 개 결과가 표시됩니다.
-
==============================
5.상단의 해당 MySQL과 당신은 MySQL의 문서에 LIMIT에 대해 더 이상 찾을 수 있습니다
상단의 해당 MySQL과 당신은 MySQL의 문서에 LIMIT에 대해 더 이상 찾을 수 있습니다
from https://stackoverflow.com/questions/2249905/is-there-an-alternative-to-top-in-mysql by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 사이베이스의 신비 '타임 스탬프'데이터 형식은 무엇입니까? (0) | 2020.05.15 |
---|---|
[SQL] 저장 프로 시저를 실행할 때, CommandType.Text를 사용하여 대 CommandType.StoredProcedure를 사용의 이점은 무엇인가? (0) | 2020.05.15 |
[SQL] 오라클에서 DATEDIFF 함수 (0) | 2020.05.15 |
[SQL] 왜 C #을 플로트에서 SQL 플로트 다른입니다 (0) | 2020.05.15 |
[SQL] (SQL Server에 대한 GROUP_CONCAT a.k.a)를 CSV로 병합 행 값 (0) | 2020.05.15 |