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

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


MySQL-এ CASE এক্সপ্রেশন ব্যবহার করে কাস্টম অর্ডারিং

MySQL-এ ORDER BY CASE WHEN ... THEN ... END ব্যবহার করে কলামের মান অনুযায়ী কাস্টম সর্টিং অর্ডার ডিফাইন করা যায়। এটি ডিফল্ট অ্যাসেন্ডিং/ডেসেন্ডিং সর্টিংয়ের বাইরে যেতে সাহায্য করে।

উদাহরণ

টেবিল তৈরি (নোট: মূল টেক্সটে টাইপো ছিল, সঠিক সিনট্যাক্স নিচে):

CREATE TABLE DemoTable (Color VARCHAR(100));
INSERT INTO DemoTable VALUES ('Red'), ('Green'), ('Blue'), ('Yellow');

CASE WHEN ব্যবহার করে কাস্টম সর্ট

SELECT * FROM DemoTable 
ORDER BY CASE Color 
    WHEN 'Blue'  THEN 10 
    WHEN 'Green' THEN 20 
    WHEN 'Yellow' THEN 30 
    ELSE 100 
END;

আউটপুট:

+--------+
| Color  |
+--------+
| Blue   |
| Green  |
| Yellow |
| Red    |
+--------+

ব্যাখ্যা

  • Blue → ১০ (সর্বোচ্চ প্রায়োরিটি)
  • Green → ২০
  • Yellow → ৩০
  • অন্যান্য → ১০০ (শেষে)

ব্যবহার ক্ষেত্র

  • স্ট্যাটাস ফিল্ড সর্টিং: 'Pending' → 'Processing' → 'Completed' → 'Cancelled'
  • প্রায়োরিটি-ভিত্তিক টাস্ক সর্টিং।
  • এনাম-লাইক মানগুলোর কাস্টম অর্ডার।

টিপ: ELSE ক্লজ ব্যবহার না করলে অনমানো মানগুলো NULL হিসেবে চলে আসবে এবং সর্টিংয়ে প্রথমে আসতে পারে।

  1. PostgreSQL-এ MySQL-এর ORDER BY FIELD() অনুকরণ করা

  2. MySQL-এ CASE WHEN-এর বিকল্প হিসেবে IF() ফাংশন ব্যবহার করুন

  3. MySQL-এ ORDER BY FIELD() এবং OR শর্ত ব্যবহার করে প্রায়োরিটি ভিত্তিক সর্টিং

  4. MySQL-এ CASE WHEN দিয়ে শর্তভিত্তিক কাউন্ট করা (Conditional Aggregation)