IN() ক্লজ দিয়ে ফিল্টার এবং ORDER BY FIELD() দিয়ে কাস্টম ক্রমে সর্ট করা যায়।
টেবিল ও ডেটা:
mysql> CREATE TABLE DemoTable1986 (Number INT); mysql> INSERT INTO DemoTable1986 VALUES (50), (60), (100), (200), (350);
নির্দিষ্ট মান (50, 100, 350) কাস্টম অর্ডারে (350, 100, 50):
mysql> SELECT * FROM DemoTable1986
WHERE Number IN(50,100,350)
ORDER BY FIELD(Number, 350, 100, 50);
আউটপুট:
+--------+ | Number | +--------+ | 350 | | 100 | | 50 | +--------+
ব্যাখ্যা
IN(50,100,350)— শুধু এই তিনটি মান ফিল্টার করে।FIELD(Number, 350, 100, 50)— Number কলামের মান 350 হলে ১, 100 হলে ২, 50 হলে ৩ রিটার্ন করে। সেট অনুযায়ী সর্ট হয়।- লিস্টে নাই মান হলে ০ রিটার্ন করে (সর্বশেষে আসে)।
এই পদ্ধতিতে যেকোনো কাস্টম সর্টিং অর্ডার বাস্তবায়ন করা যায়।