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

MySQL-এ ORDER BY CASE WHEN ব্যবহার করে কাস্টম সর্টিং করা

MySQL-এ নির্দিষ্ট মানগুলো নির্দিষ্ট ক্রমে সর্ট করতে ORDER BY CASE WHEN ব্যবহার করা হয়।

উদাহরণ

টেবিল তৈরি:

CREATE TABLE demo51 (
    id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(20)
);

INSERT INTO demo51(name) VALUES ('John'), ('Bob'), ('David'), ('Sam');

টেবিলের ডেটা:

+----+-------+
| id | name  |
+----+-------+
| 1  | John  |
| 2  | Bob   |
| 3  | David |
| 4  | Sam   |
+----+-------+

কোয়েরি

নাম অনুযায়ী কাস্টম অর্ডার: John (১১০), Bob (১০৫), David (১০৪), বাকি (১০১):

SELECT * FROM demo51
ORDER BY 
    CASE 
        WHEN name = 'John'  THEN 110
        WHEN name = 'Bob'   THEN 105
        WHEN name = 'David' THEN 104
        ELSE 101
    END;

আউটপুট

+----+-------+
| id | name  |
+----+-------+
| 4  | Sam   |
| 3  | David |
| 2  | Bob   |
| 1  | John  |
+----+-------+

ব্যাখ্যা: CASE এক্সপ্রেশন প্রতিটি রোয়ের জন্য একটি সর্ট কী রিটার্ন করে। MySQL সেই কী অনুযায়ী অ্যাসেন্ডিং অর্ডারে সর্ট করে। এখানে Sam-এর কী ১০১ (ELSE), David ১০৪, Bob ১০৫, John ১১০। তাই Sam প্রথমে, John শেষে। ডিসেন্ডিং চাইলে ORDER BY ... DESC ব্যবহার করুন।

  1. MySQL-এ "০১ August ২০১৯" ফরম্যাটে তারিখ অর্ডার করা

  2. MySQL-এ ORDER BY columnname*1 এর উদ্দেশ্য কী?

  3. MySQL-এ পাস করা ID-দের কাস্টম অর্ডার বজায় রাখা

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