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

MySQL에서 테이블의 첫 번째 레코드와 마지막 레코드를 한 번에 조회하는 방법

MySQL에서 첫 번째와 마지막 레코드 조회하기

MySQL에서 테이블의 첫 번째 레코드마지막 레코드를 동시에 가져오려면 UNION을 사용하면 됩니다. 각 SELECT 문에 LIMIT를 적용해 원하는 개수만큼의 레코드를 추출한 뒤, 두 결과를 하나로 합치는 방식입니다.

먼저 예제 테이블을 생성해 보겠습니다.

mysql> create table DemoTable694 (
    EmployeeId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    EmployeeName varchar(100),
    EmployeeSalary int
);
Query OK, 0 rows affected (0.58 sec)

1. 테이블에 데이터 삽입하기

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

mysql> insert into DemoTable694(EmployeeName,EmployeeSalary) values('Chris',457647);
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable694(EmployeeName,EmployeeSalary) values('Robert',90883);
Query OK, 1 row affected (0.25 sec)
mysql> insert into DemoTable694(EmployeeName,EmployeeSalary) values('David',123532);
Query OK, 1 row affected (0.19 sec)
mysql> insert into DemoTable694(EmployeeName,EmployeeSalary) values('Mike',989322);
Query OK, 1 row affected (0.22 sec)

2. 전체 레코드 확인하기

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

mysql> select *from DemoTable694;

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

+------------+--------------+----------------+
| EmployeeId | EmployeeName | EmployeeSalary |
+------------+--------------+----------------+
| 1          | Chris        | 457647         |
| 2          | Robert       | 90883          |
| 3          | David        | 123532         |
| 4          | Mike         | 989322         |
+------------+--------------+----------------+
4 rows in set (0.00 sec)

3. 첫 번째와 마지막 레코드 조회 쿼리

첫 번째 레코드는 ORDER BY ... ASCLIMIT 1로, 마지막 레코드는 ORDER BY ... DESCLIMIT 1로 각각 조회한 후, 이를 UNION으로 결합합니다.

mysql> (select *from DemoTable694 order by EmployeeId ASC LIMIT 1)
UNION
(select *from DemoTable694 order by EmployeeId DESC LIMIT 1);

위 쿼리의 실행 결과는 다음과 같습니다.

+------------+--------------+----------------+
| EmployeeId | EmployeeName | EmployeeSalary |
+------------+--------------+----------------+
| 1          | Chris        | 457647         |
| 4          | Mike         | 989322         |
+------------+--------------+----------------+
2 rows in set (0.00 sec)

결과를 보면 직원 ID가 1인 'Chris'(첫 번째 레코드)와 ID가 4인 'Mike'(마지막 레코드)가 함께 반환된 것을 확인할 수 있습니다.

추가 팁: UNION ALL 사용 시 주의점

UNION은 중복 행을 자동으로 제거합니다. 테이블에 레코드가 하나뿐이라면 첫 번째와 마지막 레코드가 동일하게 되므로, UNION을 사용하면 결과가 한 행만 표시됩니다. 만약 중복 제거 없이 결과를 유지하고 싶다면 UNION ALL을 사용하는 것이 좋습니다.