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

MySQL에서 중복 레코드 데이터 정렬하기 – ORDER BY 절 활용 방법

MySQL에서 ORDER BY 절을 사용하면 이름처럼 중복된 값이 존재하는 레코드의 데이터도 손쉽게 정렬할 수 있습니다. 이 글에서는 예제 테이블을 만들고, 특정 이름(중복 값)에 해당하는 점수들을 내림차순으로 정렬하는 과정을 단계별로 살펴보겠습니다.

1. 예제 테이블 생성

먼저 CREATE TABLE 문으로 테스트용 테이블을 생성합니다.

mysql> create table DemoTable788 (
   FirstName varchar(100),
   Score int
);
Query OK, 0 rows affected (1.89 sec)

2. 샘플 데이터 삽입

INSERT 명령을 사용해 중복된 이름이 포함된 레코드를 여러 개 입력합니다.

mysql> insert into DemoTable788 values('Chris',78);
Query OK, 1 row affected (0.20 sec)
mysql> insert into DemoTable788 values('Robert',67);
Query OK, 1 row affected (0.19 sec)
mysql> insert into DemoTable788 values('Chris',98);
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable788 values('Chris',56);
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable788 values('Robert',43);
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable788 values('Robert',97);
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable788 values('Chris',79);
Query OK, 1 row affected (0.12 sec)

3. 전체 레코드 조회

SELECT 문으로 테이블의 모든 데이터를 확인합니다.

mysql> select *from DemoTable788;

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

+-----------+-------+
| FirstName | Score |
+-----------+-------+
| Chris     | 78    |
| Robert    | 67    |
| Chris     | 98    |
| Chris     | 56    |
| Robert    | 43    |
| Robert    | 97    |
| Chris     | 79    |
+-----------+-------+
7 rows in set (0.00 sec)

4. 중복 레코드 정렬하기

이제 중복된 이름 'Chris'에 해당하는 레코드만 추출하고, ORDER BY ... DESC를 사용해 점수를 내림차순으로 정렬합니다.

mysql> select Score from DemoTable788 where FirstName='Chris' order by Score DESC;

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

+-------+
| Score |
+-------+
| 98    |
| 79    |
| 78    |
| 56    |
+-------+
4 rows in set (0.00 sec)

마무리

위 예제에서 볼 수 있듯이, WHERE 절로 중복 값을 가진 레코드를 필터링한 뒤 ORDER BY 절을 함께 사용하면 원하는 기준(오름차순 또는 내림차순)으로 데이터를 깔끔하게 정렬할 수 있습니다. 오름차순 정렬이 필요하다면 DESC 대신 ASC(기본값)를 사용하면 됩니다.