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

MySQL에서 ID 기준 내림차순(DESC) 정렬 후 최상위 레코드 선택하는 방법

MySQL에서 ID를 기준으로 내림차순(DESC) 정렬된 테이블의 최상위 레코드, 즉 가장 마지막에 입력된 레코드를 가져오려면 ORDER BY ... DESC 절과 LIMIT 1을 함께 사용하면 됩니다. 지금부터 예제를 통해 단계별로 살펴보겠습니다.

1. 테이블 생성

먼저 예제에 사용할 테이블을 생성합니다.

mysql> create table DemoTable
-> (
-> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> UserName varchar(100),
-> UserMessage text
-> );
Query OK, 0 rows affected (1.17 sec)

2. 레코드 삽입

insert 명령을 사용하여 테이블에 여러 개의 레코드를 삽입합니다.

mysql> insert into DemoTable(UserName,UserMessage) values('Adam','Hi');
Query OK, 1 row affected (0.92 sec)

mysql> insert into DemoTable(UserName,UserMessage) values('Chris','Awesome');
Query OK, 1 row affected (0.52 sec)

mysql> insert into DemoTable(UserName,UserMessage) values('Robert','Nice');
Query OK, 1 row affected (0.65 sec)

mysql> insert into DemoTable(UserName,UserMessage) values('David','Good Morning!!!');
Query OK, 1 row affected (0.12 sec)

3. 전체 레코드 조회

select 문을 사용하여 테이블의 모든 레코드를 확인합니다.

mysql> select *from DemoTable;

출력 결과

위 쿼리는 다음과 같은 결과를 출력합니다.

+----+----------+-----------------+
| Id | UserName | UserMessage |
+----+----------+-----------------+
| 1 | Adam | Hi |
| 2 | Chris | Awesome |
| 3 | Robert | Nice |
| 4 | David | Good Morning!!! |
+----+----------+-----------------+
4 rows in set (0.00 sec)

4. 최상위 레코드 선택하기

테이블에서 최상위 레코드를 선택하는 쿼리는 다음과 같습니다. ID를 기준으로 내림차순 정렬한 뒤 LIMIT 1을 적용하면, 가장 큰 ID 값을 가진 레코드 즉 최근에 추가된 레코드 하나만 반환됩니다.

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

출력 결과

위 쿼리는 다음과 같은 결과를 출력합니다.

+----+----------+-----------------+
| Id | UserName | UserMessage |
+----+----------+-----------------+
| 4 | David | Good Morning!!! |
+----+----------+-----------------+
1 row in set (0.00 sec)

결과에서 볼 수 있듯이 ORDER BY Id DESC는 ID가 가장 큰 레코드부터 내림차순으로 정렬하고, LIMIT 1은 그중 첫 번째 레코드 한 건만 가져옵니다. 이 방식은 게시판에서 최신 글 하나를 조회하거나, 로그 테이블에서 가장 최근에 기록된 데이터를 확인할 때 실무에서 매우 자주 활용되는 패턴입니다.