কম্পিউটার টিউটোরিয়াল

MySQL ORDER BY FIELD()로 사용자 정의 정렬하기

기본 정렬(오름차순/내림차순)이 아닌 임의의 순서로 정렬하려면 ORDER BY FIELD(컬럼, 값1, 값2, ...)를 사용합니다.

테이블 생성 및 데이터 삽입

mysql> CREATE TABLE DemoTable (
    -> Id INT
    -> );
Query OK, 0 rows affected (0.82 sec)
mysql> INSERT INTO DemoTable VALUES(101);
Query OK, 1 row affected (0.23 sec)
mysql> INSERT INTO DemoTable VALUES(103);
Query OK, 1 row affected (0.11 sec)
mysql> INSERT INTO DemoTable VALUES(102);
Query OK, 1 row affected (0.08 sec)
mysql> INSERT INTO DemoTable VALUES(105);
Query OK, 1 row affected (0.14 sec)

정렬 전 데이터

mysql> SELECT * FROM DemoTable;
+------+
| Id   |
+------+
|  101 |
|  103 |
|  102 |
|  105 |
+------+
4 rows in set (0.00 sec)

사용자 정의 순서로 정렬 (102, 105, 101, 103 순)

mysql> SELECT * FROM DemoTable ORDER BY FIELD(Id, 102, 105, 101, 103);
+------+
| Id   |
+------+
|  102 |
|  105 |
|  101 |
|  103 |
+------+
4 rows in set (0.00 sec)

활용 예: 상태 컬럼이 'Pending', 'Approved', 'Rejected'일 때 승인→대기→거절 순으로 정렬하려면 ORDER BY FIELD(Status, 'Approved', 'Pending', 'Rejected')처럼 쓰면 됩니다. 목록에 없는 값은 맨 뒤에 옵니다.

  1. MySQL-এ সর্বোচ্চ থেকে সর্বনিম্ন মান অনুযায়ী সাজানো

  2. MySQL-এ CASE স্টেটমেন্ট দিয়ে কাস্টম সর্টিং (দুই কলাম)

  3. MySQL IF() ফাংশন ব্যবহার করে কাস্টম YES/NO মেসেজ দেখানো

  4. MySQL-এ SELECT ফলাফল কাস্টম ভেরিয়েবলে সংরক্ষণ করা