কম্পিউটার টিউটোরিয়াল

MySQL-এ কলাম নাম না লিখে অবস্থান (Position) দিয়ে ORDER BY করা

অবস্থান-ভিত্তিক 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) ব্যবহার করা বেস্ট প্র্যাকটিস।

  1. MySQL-এ ORDER BY INSTR() দিয়ে নির্দিষ্ট শব্দवाले রেকর্ড প্রথমে দেখানো

  2. MySQL-এ শুরুতম অক্ষর অনুযায়ী অর্ডার বাই কীভাবে করবেন?

  3. MySQL-এ কোয়েরির ফলাফল র‍্যান্ডমলি সাজানো এবং র‍্যান্ডম সারি বের করা

  4. MySQL-এ JOIN ব্যবহার করে দুটি টেবিলের রেজাল্ট মার্জ করা