কাস্টম ক্রমে সাজাতে ORDER BY FIELD() ফাংশন ব্যবহার করুন। প্রথমে একটি টেবিল তৈরি করি:
mysql> CREATE TABLE DemoTable (Number INT);
রেকর্ড যোগ করি:
mysql> INSERT INTO DemoTable VALUES(1), (4), (2), (3);
সকল রেকর্ড দেখতে:
mysql> SELECT * FROM DemoTable;
আউটপুট:
+--------+ | Number | +--------+ | 1 | | 4 | | 2 | | 3 | +--------+
কাস্টম ক্রম (৪, ২, ১, ৩) অনুযায়ী সাজানো:
mysql> SELECT * FROM DemoTable ORDER BY FIELD(Number, 4, 2, 1, 3);
আউটপুট:
+--------+ | Number | +--------+ | 4 | | 2 | | 1 | | 3 | +--------+
ব্যাখ্যা: FIELD(Number, 4, 2, 1, 3) ফাংশনটি:
- Number=4 হলে ১ ফেরত দেয় (প্রথম পজিশন)
- Number=2 হলে ২ ফেরত দেয়
- Number=1 হলে ৩ ফেরত দেয়
- Number=3 হলে ৪ ফেরত দেয়
- লিস্টে নেই হলে ০ ফেরত দেয় (সবচেয়ে আগে আসবে ASC-এ)
ব্যবহার ক্ষেত্র: প্রায়োরিটি ভিত্তিক সর্টিং, স্ট্যাটাস অর্ডার (Pending, Processing, Shipped, Delivered), ক্যাটেগরি র্যাঙ্কিং ইত্যাদি।
নোট: FIELD() এর আর্গুমেন্টগুলো কনস্ট্যান্ট হতে হবে (কলাম বা এক্সপ্রেশন নয়)।