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 হিসেবে চলে আসবে এবং সর্টিংয়ে প্রথমে আসতে পারে।