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

MySQL에서 특정 값을 가진 레코드를 먼저 정렬한 후 나머지 레코드를 날짜순으로 정렬하는 방법

MySQL에서 특정 레코드를 우선 표시하고 나머지를 날짜순으로 정렬하기

MySQL에서는 ORDER BY 절을 활용하면 특정 조건에 해당하는 레코드를 최상단에 고정하고, 나머지 레코드들은 다른 컬럼(예: 날짜)을 기준으로 정렬할 수 있습니다.

기본 문법은 다음과 같습니다.

select * from yourTableName
order by yourColumnName1=yourValue desc,yourColumnName2;

여기서 핵심은 yourColumnName1=yourValue라는 불리언 표현식입니다. 조건이 참인 레코드는 1, 거짓인 레코드는 0으로 평가되며, 내림차순(desc) 정렬 시 조건에 일치하는 레코드가 자연스럽게 앞쪽에 배치됩니다.

1. 테이블 생성

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

mysql> create table DemoTable1932
    (
    UserName varchar(20),
    ShippingDate date
    );
Query OK, 0 rows affected (0.00 sec)

2. 데이터 삽입

insert 명령어를 사용해 몇 개의 레코드를 삽입합니다.

mysql> insert into DemoTable1932 values('Chris','2018-10-12');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1932 values('David','2019-04-11');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1932 values('Mike','2016-12-04');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1932 values('Carol','2017-12-26');
Query OK, 1 row affected (0.00 sec)

3. 전체 레코드 조회

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

mysql> select * from DemoTable1932;

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

+----------+--------------+
| UserName | ShippingDate |
+----------+--------------+
| Chris    | 2018-10-12   |
| David    | 2019-04-11   |
| Mike     | 2016-12-04   |
| Carol    | 2017-12-26   |
+----------+--------------+
4 rows in set (0.00 sec)

4. 특정 값을 우선 정렬하는 쿼리

이제 'David'라는 사용자를 맨 앞에 표시하고, 나머지 레코드는 배송일(ShippingDate) 오름차순으로 정렬하는 쿼리입니다.

mysql> select * from DemoTable1932
    order by UserName='David' desc,ShippingDate;

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

+----------+--------------+
| UserName | ShippingDate |
+----------+--------------+
| David    | 2019-04-11   |
| Mike     | 2016-12-04   |
| Carol    | 2017-12-26   |
| Chris    | 2018-10-12   |
+----------+--------------+
4 rows in set (0.00 sec)

결과 분석

위 결과를 보면 'David'가 첫 번째 행에 위치하고, 나머지 레코드(Mike → Carol → Chris)는 배송일 순서대로(2016-12-04 → 2017-12-26 → 2018-10-12) 정렬된 것을 확인할 수 있습니다.

이 기법은 공지사항 상단 고정, VIP 고객 우선 노출 등 실무에서 자주 활용되는 정렬 방식이므로 꼭 익혀두면 유용합니다.