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

MySQL-এ নির্দিষ্ট রো ফিক্স করে বাকিগুলো ORDER BY ASC করা


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;

এই প্যাটার্নে আপনি যেকোনো সংখ্যক রোকে কৃত্রিম ক্রমে ফিক্স করতে পারেন।

  1. MySQL-এ নির্দিষ্ট মান ثابت রেখে বাকি সারি র‍্যান্ডমভাবে সর্ট করা

  2. MySQL-এ নির্দিষ্ট মান প্রথমে দেখিয়ে বাকি ডেট অনুযায়ী সর্ট করা

  3. MySQL-এ ORDER BY ASC করার সময় NULL মানগুলো শেষে রাখা (CASE WHEN)

  4. MySQL অপশন ডিফল্ট, মান আশা করা অপশন এবং = চিহ্ন