MySQL-এ ORDER BY IF() ব্যবহার করে নির্দিষ্ট শর্তের ওপর ভিত্তি করে রেকর্ড সাজানো যায়। নিচে একটি উদাহরণ দেওয়া হলো যেখানে নাম 'Sam' হলে সেটিকে আগে রাখা হয়েছে, বাকিগুলো স্কোর অনুযায়ী নিম্নক্রমে।
টেবিল তৈরি ও ডেটা ইনসার্ট
mysql> CREATE TABLE DemoTable (
Name VARCHAR(50),
Score INT
);
mysql> INSERT INTO DemoTable VALUES ('Chris', 98);
mysql> INSERT INTO DemoTable VALUES ('David', 45);
mysql> INSERT INTO DemoTable VALUES ('Bob', 56);
mysql> INSERT INTO DemoTable VALUES ('Sam', 89);
mysql> INSERT INTO DemoTable VALUES ('Carol', 78);
শর্তসাপেক্ষ ORDER BY কোয়েরি
mysql> SELECT * FROM DemoTable
ORDER BY IF(Name = 'Sam', 1, 0) ASC, Score DESC;
ফলাফল:
+-------+-------+ | Name | Score | +-------+-------+ | Chris | 98 | | Carol | 78 | | Bob | 56 | | David | 45 | | Sam | 89 | +-------+-------+
ব্যাখ্যা: IF(Name='Sam',1,0) এক্সপ্রেশনটি Sam এর জন্য ১ রিটার্ন করে, অন্যদের জন্য ০। ASC সাজাতে ০ আগে আসে, তাই Sam শেষে থাকে। তারপর Score DESC দিয়ে বাকিগুলো উচ্চ থেকে নিম্নে সাজানো হয়েছে।