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

MySQL에서 가장 높은 ID를 가진 행만 조회하는 방법

MySQL 테이블에서 가장 큰 ID 값을 가진 행을 조회하려면 ORDER BY DESC 절과 LIMIT 1을 함께 사용하면 됩니다. ID를 내림차순으로 정렬한 뒤 첫 번째 행 하나만 가져오는 방식으로, 결과적으로 최대 ID를 가진 행이 반환됩니다.

예제 테이블 생성하기

먼저 실습에 사용할 테이블을 만들어 보겠습니다.

mysql> create table DemoTable
(
    Id int,
    FirstName varchar(50)
);
Query OK, 0 rows affected (0.83 sec)

데이터 삽입하기

INSERT 명령어를 사용해 몇 개의 레코드를 추가합니다.

mysql> insert into DemoTable values(100,'Chris');
Query OK, 1 row affected (0.20 sec)
mysql> insert into DemoTable values(110,'Robert');
Query OK, 1 row affected (0.19 sec)
mysql> insert into DemoTable values(120,'Mike');
Query OK, 1 row affected (0.19 sec)
mysql> insert into DemoTable values(115,'Bob');
Query OK, 1 row affected (0.14 sec)

전체 데이터 확인하기

SELECT 문으로 테이블의 모든 레코드를 조회합니다.

mysql> select *from DemoTable;

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

+------+-----------+
| Id   | FirstName |
+------+-----------+
| 100  | Chris     |
| 110  | Robert    |
| 120  | Mike      |
| 115  | Bob       |
+------+-----------+
4 rows in set (0.00 sec)

가장 높은 ID를 가진 행 조회하기

아래 쿼리처럼 ORDER BY Id DESC LIMIT 1을 사용하면 가장 큰 ID를 가진 행만 출력됩니다.

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

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

+------+-----------+
| Id   | FirstName |
+------+-----------+
| 120  | Mike      |
+------+-----------+
1 row in set (0.00 sec)

참고: MAX() 함수를 활용한 대안

동일한 결과를 얻는 또 다른 방법으로 MAX() 함수를 사용할 수 있습니다. 서브쿼리로 최대 ID를 구한 뒤 해당 행을 조회하는 방식입니다.

mysql> select *from DemoTable
where Id = (select max(Id) from DemoTable);

두 방식 모두 ID가 120인 'Mike' 행을 반환합니다. 단순히 최대 ID 한 건만 필요하다면 ORDER BY DESC + LIMIT 1이 간결하고, 인덱스가 설정되어 있다면 매우 빠르게 동작합니다.