ORDER BY Boolean Expression দিয়ে নির্দিষ্ট রোকে প্রথমে ফিক্স করা
MySQL-এ ORDER BY (col = value) DESC প্যাটার্ন ব্যবহার করে নির্দিষ্ট মানবाला রোকে প্রথমে ফিক্স করে, বাকি গুলোকে সাধারণ ASC/DESC-এ সাজানো যায়।
টেবিল ও ডেটা
mysql> CREATE TABLE DemoTable (id INT); mysql> INSERT INTO DemoTable VALUES(10), (7), (8), (6), (9), (11);
সাধারণ সাজানো
+------+ | id | +------+ | 10 | | 7 | | 8 | | 6 | | 9 | | 11 | +------+
ID=10 কে প্রথমে ফিক্স করে বাকি ASC
mysql> SELECT * FROM DemoTable ORDER BY id = 10 DESC, id ASC;
+------+ | id | +------+ | 10 | | 6 | | 7 | | 8 | | 9 | | 11 | +------+
ব্যাখ্যা
id = 10— id=10 হলে TRUE (1), অন্যদের FALSE (0)।DESC— TRUE (1) কে FALSE (0) থেকে আগে আনে → id=10 প্রথমে।id ASC— বাকি গুলো অর্ধমুখী (৬, ৭, ৮, ৯, ১১)।
একাধিক রো ফিক্স করতে
ORDER BY CASE id WHEN 10 THEN 1 WHEN 7 THEN 2 ELSE 3 END, id ASC;
এই প্যাটার্নে আপনি যেকোনো সংখ্যক রোকে কৃত্রিম ক্রমে ফিক্স করতে পারেন।