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

MySQL-এ ORDER BY CASE WHEN দিয়ে নির্দিষ্ট রেকর্ডকে (John) শীর্ষে আনা


CASE WHEN দিয়ে কাস্টম প্রায়োরিটি সাজানো

MySQL-এ ORDER BY CASE WHEN col = 'value' THEN 1 ELSE 2 END প্যাটার্ন ব্যবহার করে নির্দিষ্ট মানবালা রোকে শীর্ষে আনা এবং বাকি গুলোকে সাধারণ ক্রমে সাজানো যায়।

টেবিল ও ডেটা

mysql> CREATE TABLE DemoTable (StudentName VARCHAR(100), StudentMarks INT);
mysql> INSERT INTO DemoTable VALUES('Chris',45), ('John',67), ('David',89), ('John',98), ('Mike',79), ('John',99);

সব রেকর্ড

+-------------+--------------+
| StudentName | StudentMarks |
+-------------+--------------+
| Chris       | 45           |
| John        | 67           |
| David       | 89           |
| John        | 98           |
| Mike        | 79           |
| John        | 99           |
+-------------+--------------+

ORDER BY CASE WHEN (John কে শীর্ষে)

mysql> SELECT * FROM DemoTable 
ORDER BY CASE StudentName WHEN 'John' THEN 2 ELSE 3 END, StudentName, StudentMarks;
+-------------+--------------+
| StudentName | StudentMarks |
+-------------+--------------+
| John        | 67           |
| John        | 98           |
| John        | 99           |
| Chris       | 45           |
| David       | 89           |
| Mike        | 79           |
+-------------+--------------+

ব্যাখ্যা

  • CASE StudentName WHEN 'John' THEN 2 ELSE 3 END — 'John' হলে ২, অন্যদের ৩ (নাম্বার ছোট হলে আগে আসে)۔
  • দ্বিতীয় StudentName — 'John' গ্রুপের মধ্যে নাম অনুযায়ী (সব John-ই, তাই সহজ)۔
  • তৃতীয় StudentMarks — একই নামের মধ্যে মার্কস অনুযায়ী ASC (67, 98, 99)۔

সাধারণত প্রায়োরিটি ১,২,৩... দিয়ে লিখা ভালো

ORDER BY CASE StudentName WHEN 'John' THEN 1 ELSE 2 END, StudentMarks;

এবং CASE WHEN StudentName = 'John' THEN 1 WHEN StudentName = 'Admin' THEN 2 ELSE 3 END দিয়ে একাধিক প্রায়োরিটি লেভেল ডিফাইন করা যায়।

  1. MySQL-এ top 2 সর্বোচ্চ স্কোর বের করা

  2. MySQL에서 CURDATE()로 오늘 날짜와 일치하는 레코드 업데이트하기

  3. MySQL-এ SELECT কোয়েরি থেকে নির্দিষ্ট কলামের রেকর্ড কীভাবে পেতে হয়?

  4. MySQL-এ AND ও OR অপারেটর ব্যবহার করে নির্দিষ্ট রেকর্ড বের করা