MySQL-এ কোনো কলামের ভ্যালু অনুযায়ী কাস্টম ক্রমে (আলফাবেটিক্যাল নয়) সাজাতে ORDER BY FIELD() ফাংশন ব্যবহার করা হয়।
টেবিল ও ডেটা
mysql> CREATE TABLE DemoTable (
StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
StudentFirstName VARCHAR(20),
StudentFavouriteSubject VARCHAR(100)
);
mysql> INSERT INTO DemoTable(StudentFirstName, StudentFavouriteSubject) VALUES
('Larry', 'Java'), ('Sam', 'C'), ('Bob', 'MongoDB'), ('David', 'MySQL');
সকল ডেটা
+-----------+------------------+-------------------------+ | StudentId | StudentFirstName | StudentFavouriteSubject | +-----------+------------------+-------------------------+ | 1 | Larry | Java | | 2 | Sam | C | | 3 | Bob | MongoDB | | 4 | David | MySQL | +-----------+-------------------------+
কাস্টম অর্ডার: MongoDB, MySQL, Java, C
mysql> SELECT * FROM DemoTable
ORDER BY FIELD(StudentFavouriteSubject, 'MongoDB', 'MySQL', 'Java', 'C');
ফলাফল
+-----------+------------------+-------------------------+ | StudentId | StudentFirstName | StudentFavouriteSubject | +-----------+------------------+-------------------------+ | 3 | Bob | MongoDB | | 4 | David | MySQL | | 1 | Larry | Java | | 2 | Sam | C | +-----------+------------------+-------------------------+
ব্যাখ্যা: FIELD(str, val1, val2, ...) ফাংশনটি str কোন পজিশনে আছে সেটি রিটার্ন করে (১-বেসড)। না পেলে ০। ORDER BY FIELD(...) এই পজিশন অনুযায়ী সাজায়। লিস্টে নাই এমন ভ্যালুগুলো সবশেষে আসে (পজিশন ০)।