MySQL에서 필드 값으로 사용자 정의 정렬을 수행하려면 ORDER BY에서 FIELD() 메소드를 사용하십시오. 먼저 테이블을 생성해 보겠습니다.
mysql> create table DemoTable (StudentId int); Query OK, 0 rows affected (0.58 sec)
다음은 삽입 명령을 사용하여 테이블에 일부 레코드를 삽입하는 쿼리입니다.
mysql> insert into DemoTable values(100); Query OK, 1 row affected (0.17 sec) mysql> insert into DemoTable values(110); Query OK, 1 row affected (0.10 sec) mysql> insert into DemoTable values(90); Query OK, 1 row affected (0.15 sec) mysql> insert into DemoTable values(70); Query OK, 1 row affected (0.19 sec) mysql> insert into DemoTable values(120); Query OK, 1 row affected (0.12 sec) mysql> insert into DemoTable values(140); Query OK, 1 row affected (0.14 sec)
다음은 select 명령을 사용하여 테이블의 레코드를 표시하는 쿼리입니다.
mysql> select *from DemoTable;
그러면 다음과 같은 출력이 생성됩니다.
+-----------+ | StudentId | +-----------+ | 100 | | 110 | | 90 | | 70 | | 120 | | 140 | +-----------+ 6 rows in set (0.00 sec)
다음은 필드 값으로 사용자 정의 MySQL 정렬을 수행하는 쿼리입니다.
mysql> select *from DemoTable order by field(StudentId,'100','70','140','90','120','110');
그러면 다음과 같은 출력이 생성됩니다.
+-----------+ | StudentId | +-----------+ | 100 | | 70 | | 140 | | 90 | | 120 | | 110 | +-----------+ 6 rows in set (0.00 sec)