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

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

GROUP BY দিয়ে গ্রুপ করার পর ORDER BY FIELD() ব্যবহার করে গ্রুপগুলো কাস্টম ক্রমে সাজানো যায়।

টেবিল তৈরি ও ডেটা ইনসার্ট

mysql> CREATE TABLE DemoTable (Message TEXT);
Query OK, 0 rows affected (1.15 sec)
mysql> INSERT INTO DemoTable VALUES ('Good');
Query OK, 1 row affected (0.43 sec)
mysql> INSERT INTO DemoTable VALUES ('Bye');
Query OK, 1 row affected (0.12 sec)
mysql> INSERT INTO DemoTable VALUES ('Awesome');
Query OK, 1 row affected (0.17 sec)
mysql> INSERT INTO DemoTable VALUES ('Bye');
Query OK, 1 row affected (0.08 sec)
mysql> INSERT INTO DemoTable VALUES ('Good');
Query OK, 1 row affected (0.23 sec)
mysql> INSERT INTO DemoTable VALUES ('Amazing');
Query OK, 1 row affected (0.16 sec)
mysql> INSERT INTO DemoTable VALUES ('Awesome');
Query OK, 1 row affected (0.10 sec)
mysql> INSERT INTO DemoTable VALUES ('Bye');
Query OK, 1 row affected (0.12 sec)

সকল রেকর্ড

mysql> SELECT * FROM DemoTable;

আউটপুট:

+---------+
| Message |
+---------+
| Good    |
| Bye     |
| Awesome |
| Bye     |
| Good    |
| Amazing |
| Awesome |
| Bye     |
+---------+
8 rows in set (0.00 sec)

গ্রুপ করে কাস্টম ক্রমে সর্ট

mysql> SELECT * FROM DemoTable 
GROUP BY Message 
ORDER BY FIELD(Message, 'Amazing', 'Awesome', 'Good', 'Bye');

ফলাফল (গ্রুপ করা হয়েছে, ক্রম: Amazing, Awesome, Good, Bye):

+---------+
| Message |
+---------+
| Amazing |
| Awesome |
| Good    |
| Bye     |
+---------+
4 rows in set (0.04 sec)

FIELD() ফাংশন ব্যাখ্যা

  • FIELD(str, val1, val2, ...) - str যেটার সাথে মিলে, তার পজিশন (১-ভিত্তিক) রিটার্ন করে।
  • মিলে না হলে ০ রিটার্ন করে (শেষে আসে)।
  • এখানে 'Amazing'=১, 'Awesome'=২, 'Good'=৩, 'Bye'=৪।

শুধু গ্রুপ করা (অ্যাক্টিভ ছাড়া)

MySQL-এ GROUP BY বাই ডিফল্ট প্রথম রো নেয় (ANY_VALUE)। নির্দিষ্ট কলাম চাইলে ANY_VALUE(col) বা অ্যাক্টিভ ফাংশন ব্যবহার করুন। MySQL 5.7+ ONLY_FULL_GROUP_BY মোডে স্ট্রিক্ট।

  1. MySQL-এ ORDER BY Amount=0, Amount দিয়ে শূন্য মানগুলো শেষে পাঠানো

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

  3. MySQL-এ একক কোয়ারি দিয়ে একটি কলামে একাধিক মান কিভাবে ইনসার্ট করবেন?

  4. MySQL-এ GROUP BY ব্যবহার করে ফিল্ড আপডেট করা