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

MySQL-এ নির্দিষ্ট রেকর্ডকে প্রথমে দেখিয়ে ORDER BY করা (CASE)

MySQL-এ ORDER BY ক্লজে CASE স্টেটমেন্ট ব্যবহার করে নির্দিষ্ট ভ্যালুয়ুক্ত রোকে প্রথমে (বা শেষে) আনা যায়, বাকিগুলো স্বাভাবিক ক্রমে থাকে।

টেবিল ও ডেটা

mysql> CREATE TABLE DemoTable (Number INT);
mysql> INSERT INTO DemoTable VALUES (490), (310), (540), (123), (1230), (1090);

সকল ডেটা

+--------+
| Number |
+--------+
| 490    |
| 310    |
| 540    |
| 123    |
| 1230   |
| 1090   |
+--------+

Number = 1090 কে প্রথমে, বাকি ASC ক্রমে

mysql> SELECT * FROM DemoTable 
       ORDER BY (CASE WHEN Number = 1090 THEN 0 ELSE 1 END), Number;

ফলাফল

+--------+
| Number |
+--------+
| 1090   |
| 123    |
| 310    |
| 490    |
| 540    |
| 1230   |
+--------+

ব্যাখ্যা: CASE WHEN Number = 1090 THEN 0 ELSE 1 END এক্সপ্রেশনটি 1090-এর জন্য ০, বাকিদের জন্য ১ রিটার্ন করে। ORDER BY আরোহী ক্রমে (ASC) সাজায়, তাই ০ (1090) প্রথমে আসে। তারপর Number দিয়ে বাকিগুলো ছোট থেকে বড়ে সাজায়।

  1. MySQL এরর #1046 - কোনো ডাটাবেস নির্বাচন করা হয়নি

  2. MySQL-এ ORDER BY CASE ব্যবহার করা

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

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