MySQL-এ নির্দিষ্ট কাস্টম অর্ডারে স্ট্রিং কলাম সর্ট করতে ORDER BY FIELD(কলাম, 'মান১', 'মান২', ...) ব্যবহার করুন।
উদাহরণ
mysql> CREATE TABLE DemoTable (Title VARCHAR(100));
Query OK, 0 rows affected (0.56 sec)
mysql> INSERT INTO DemoTable VALUES ('Java'), ('C'), ('Python'), ('MongoDB');
Query OK, 4 rows affected
সাধারণ সিলেক্ট
mysql> SELECT * FROM DemoTable;
+---------+ | Title | +---------+ | Java | | C | | Python | | MongoDB | +---------+
কাস্টম অর্ডার: MongoDB, C, Python, Java
mysql> SELECT * FROM DemoTable ORDER BY FIELD(Title, 'MongoDB', 'C', 'Python', 'Java') ASC;
+---------+ | Title | +---------+ | MongoDB | | C | | Python | | Java | +---------+
FIELD() ফাংশন
FIELD(str, str1, str2, ...)→ str লিস্টে কতনম্বর পজিশনে আছে (১-বেসড)- নাও থাকলে ০ রিটার্ন করে (সর্বোপরি আসবে ASC-এ)
ORDER BY FIELD(col, 'a','b','c') DESC→ উল্টো অর্ডার
বিকল্প: CASE WHEN
ORDER BY CASE Title
WHEN 'MongoDB' THEN 1
WHEN 'C' THEN 2
WHEN 'Python' THEN 3
WHEN 'Java' THEN 4
ELSE 5 END;
ব্যবহার: স্ট্যাটাস (pending, approved, rejected), প্রায়রিটি (high, medium, low), ক্যাটাগরি অর্ডারিং।