অবস্থান-ভিত্তিক ORDER BY
MySQL-এ ORDER BY ক্লজে কলাম নাম না লিখে সিলেক্ট লিস্টের অবস্থান (১, ২, ৩...) দিয়ে সাজানো যায়। এটি সংক্ষিপ্ত কোডের জন্য কাজে আসে কিন্তু পঠনযোগ্যতা কমায়।
সিনট্যাক্স
SELECT * FROM table_name ORDER BY 1 DESC LIMIT n;
এখানে 1 মানে SELECT লিস্টের প্রথম কলাম (এখানে Id)।
উদাহরণ
mysql> CREATE TABLE DemoTable1325 (Id INT, Name VARCHAR(20));
mysql> INSERT INTO DemoTable1325 VALUES
(100, 'Chris'), (101, 'Bob'), (120, 'David'), (115, 'Sam'), (130, 'Carol'), (150, 'Mike');
mysql> SELECT * FROM DemoTable1325;
কুয়েরি: ১ নম্বর কলাম (Id) অনুযায়ী ডিসেন্ডিং, লিমিট ৪
mysql> SELECT * FROM DemoTable1325 ORDER BY 1 DESC LIMIT 4;
ফলাফল
+------+-------+
| Id | Name |
+------+-------+
| 150 | Mike |
| 130 | Carol |
| 120 | David |
| 115 | Sam |
+------+-------+
সতর্কতা: SELECT * ব্যবহার করলে কলাম পজিশন পরিবর্তন হলে বাগ হতে পারে। এক্সপ্লিসিট কলাম নাম (যেমন ORDER BY Id DESC) ব্যবহার করা বেস্ট প্র্যাকটিস।