문제

다음 구조가있는 테이블이 있습니다.

id | 색깔

1 | 빨간색
2 | 푸른
3 | 노란색
8 | 자주색
10 | 초록
.
.
.
100 | 노란색

처음 5 행의 최대 ID 값을 잡을 수 있기를 원합니다.

예를 들어, 나는 같은 일을하고 싶습니다 : 테이블 한계 5에서 max (ID)를 선택하십시오.

이것이 값 10을 반환하기를 바라고 있습니다

그러나 MySQL은 계속 100을 반환합니다 ... MySQL은 한계 조항조차 보지 못합니다.

도움이 되었습니까?

해결책

상위 5 개 레코드 (ID로 주문)를 선택한 다음 해당 그룹의 가장 높은 값을 얻으려는 것 같습니다. 그렇다면:

SELECT
    MAX(ID)
FROM
    ( 
         SELECT ID 
         FROM YourTable
         ORDER BY ID
         LIMIT 5
    ) as T1 

다른 팁

하위 선택보다 더 좋은 방법이 있습니다.

SELECT id FROM table LIMIT 4,1

하나의 행을 얻지 만 먼저 4를 건너 뛰십시오 .. 이것이 MyISAM 테이블 인 경우 'order by id'를 추가하십시오.

subselect를 사용하십시오.

SELECT MAX(id) FROM (SELECT id FROM table LIMIT 5);

그것은 유효한 SQL은 아니지만 일반적인 아이디어를 제공해야합니다.

다음 구조가있는 테이블이있는 경우

ID | Color

1 | red
2 | blue
3 | yellow
8 | purple
10| green
.
.
.
100|yellow

처음 5 (Auto_increment?) 값의 최대 ID 값은 5입니다. BTW, 처음 6 값의 최대 ID 값은 6이고 모든 값의 경우 100입니다. 친애하는.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top