Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL 테이블에서 최신 ID를 가진 레코드 조회하는 방법

MySQL에서 테이블에 저장된 레코드 중 가장 최신(가장 큰) ID를 가진 행만 조회하고 싶다면, ORDER BY ... DESCLIMIT 1을 조합하면 간단하게 해결할 수 있습니다. 아래에서 예제 테이블 생성부터 결과 확인까지 단계별로 살펴보겠습니다.

1. 예제 테이블 생성하기

먼저 자동 증가(AUTO_INCREMENT) 기본키를 가진 테이블을 생성합니다.

mysql> create table DemoTable676(
    Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    Number int
);
Query OK, 0 rows affected (0.50 sec)

2. 샘플 데이터 삽입하기

INSERT 문을 사용해 여러 개의 레코드를 추가합니다.

mysql> insert into DemoTable676(Number) values(1000);
Query OK, 1 row affected (0.23 sec)
mysql> insert into DemoTable676(Number) values(1839);
Query OK, 1 row affected (0.20 sec)
mysql> insert into DemoTable676(Number) values(29894);
Query OK, 1 row affected (0.30 sec)
mysql> insert into DemoTable676(Number) values(1264);
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable676(Number) values(190);
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable676(Number) values(167);
Query OK, 1 row affected (0.11 sec)

3. 전체 레코드 확인하기

SELECT 문으로 테이블의 모든 데이터를 조회해 보겠습니다.

mysql> select *from DemoTable676;

실행 결과는 다음과 같습니다.

+----+--------+
| Id | Number |
+----+--------+
|  1 | 1000   |
|  2 | 1839   |
|  3 | 29894  |
|  4 | 1264   |
|  5 | 190    |
|  6 | 167    |
+----+--------+
6 rows in set (0.00 sec)

4. 최신 ID를 가진 레코드만 조회하기

ID를 내림차순(DESC)으로 정렬한 뒤 첫 번째 행만 가져오면, 가장 최근에 삽입된 레코드, 즉 최신 ID를 가진 레코드를 얻을 수 있습니다.

mysql> select *from DemoTable676 order by Id DESC LIMIT 1;

실행 결과는 다음과 같습니다.

+----+--------+
| Id | Number |
+----+--------+
|  6 | 167    |
+----+--------+
1 row in set (0.00 sec)

핵심 정리

ORDER BY Id DESC LIMIT 1 쿼리는 ID 기준 내림차순 정렬 후 상위 1개 행만 반환하기 때문에, AUTO_INCREMENT 컬럼이 있는 테이블에서 마지막에 삽입된 레코드를 빠르고 간편하게 조회할 수 있습니다. 대용량 테이블에서도 인덱스가 설정된 기본키 컬럼을 기준으로 정렬하므로 성능 면에서도 효율적입니다.