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

MySQL-এ ORDER BY FIELD() এবং ID দিয়ে সেকেন্ডারি সর্টিং একসাথে করুন

MySQL-এ প্রথম নির্দিষ্ট মান অনুযায়ী (FIELD) সর্ট করে, তারপর বাকি মানগুলো অন্য কোনো কলাম (যেমন ID) অনুযায়ী সর্ট করতে ORDER BY ক্লজে একাধিক এক্সপ্রেশন কমা দিয়ে লিখা হয়।

উদাহরণ

১. টেবিল তৈরি করুন

mysql> CREATE TABLE DemoTable (
    -> Id INT,
    -> Name VARCHAR(20)
    -> );

২. ডেটা ইনসার্ট করুন

mysql> INSERT INTO DemoTable VALUES(101, 'Chris');
mysql> INSERT INTO DemoTable VALUES(201, 'Mike');
mysql> INSERT INTO DemoTable VALUES(110, 'Adam');
mysql> INSERT INTO DemoTable VALUES(250, 'John');

৩. সব রেকর্ড দেখুন

mysql> SELECT * FROM DemoTable;

আউটপুট:

+------+-------+
| Id   | Name  |
+------+-------+
| 101  | Chris |
| 201  | Mike  |
| 110  | Adam  |
| 250  | John  |
+------+-------+

৪. 'Mike' কে প্রথমে আনা, বাকি ID ডিসেন্ডিং অর্ডারে

mysql> SELECT * FROM DemoTable
    -> ORDER BY FIELD(Name, 'Mike') DESC, Id DESC;

৫. ফলাফল

+------+-------+
| Id   | Name  |
+------+-------+
| 201  | Mike  |
| 250  | John  |
| 110  | Adam  |
| 101  | Chris |
+------+-------+

ব্যাখ্যা:

  • FIELD(Name, 'Mike') - 'Mike' হলে ১, অন্যদের ০ রিটার্ন করে।
  • DESC - ১ (Mike) প্রথমে আসে, ০ (অন্যরা) পরে।
  • Id DESC - একই FIELD ভ্যালু 가진 রোগুলো ID বড় থেকে ছোটে সর্ট হয়।

এই টেকনিক ব্যবহার করে "ফিচার্ড" আইটেম প্রথমে দেখানো এবং বাকি গুলো লেটেস্ট ফাস্ট দেখানো যায়।

  1. MySQL-এ ORDER BY IF() ব্যবহার করে নির্দিষ্ট মানকে প্রথমে আনার সর্টিং

  2. MySQL-এ GROUP BY ও ORDER BY FIELD একসাথে ব্যবহার করে কাস্টম সর্টিং

  3. MySQL-এ COUNT() এবং IF() একসাথে ব্যবহার করে শর্তসাপেক্ষ গুননা

  4. MySQL-এ একক ফিল্ড দ্বারা অর্ডার করে বাকি রেকর্ডগুলো একই ক্রমে দেখানো