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

MySQL-এ ORDER BY FIELD() দিয়ে নির্দিষ্ট মানवाले রেকর্ড প্রথমে দেখানো

MySQL-এ ORDER BY FIELD() ফাংশন ব্যবহার করে নির্দিষ্ট মানवाले রেকর্ডগুলো কাস্টম অর্ডারে প্রথমে দেখানো যায়।

উদাহরণ: টেবিল তৈরি এবং ডেটা ইনসার্ট

mysql> create table DemoTable849(Color varchar(100)); 
Query OK, 0 rows affected (0.56 sec)
mysql> insert into DemoTable849 values('RED'); 
Query OK, 1 row affected (0.33 sec) 
mysql> insert into DemoTable849 values('ORANGE'); 
Query OK, 1 row affected (0.13 sec) 
mysql> insert into DemoTable849 values('BLUE'); 
Query OK, 1 row affected (0.15 sec) 
mysql> insert into DemoTable849 values('GREEN'); 
Query OK, 1 row affected (0.12 sec)

সকল রেকর্ড দেখানো (ডিফল্ট অর্ডার)

mysql> select * from DemoTable849;
+--------+
| Color  |
+--------+
| RED    |
| ORANGE |
| BLUE   |
| GREEN  |
+--------+
4 rows in set (0.00 sec)

কাস্টম অর্ডার: RED → GREEN → BLUE → ORANGE

mysql> select * from DemoTable849 order by field(Color,'RED','GREEN','BLUE','ORANGE');
+--------+
| Color  |
+--------+
| RED    |
| GREEN  |
| BLUE   |
| ORANGE |
+--------+
4 rows in set (0.00 sec)

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

  • FIELD(str, str1, str2, ...) - str তালিকার কোন অবস্থানে আছে তা রিটার্ন করে (১-ভিত্তিক)
  • নাইলে ০ রিটার্ন করে
  • ORDER BY FIELD(...) - ১, ২, ৩... অর্ডারে সাজায়, ০ (নাই) সবশেষে

ব্যাখ্যা

ColorFIELD(Color,'RED','GREEN','BLUE','ORANGE')অর্ডার
RED1১ম
GREEN2২য়
BLUE3৩য়
ORANGE4৪র্থ
YELLOW (নেই)0শেষে

বিকল্প পদ্ধতি: CASE WHEN

ORDER BY CASE Color 
    WHEN 'RED' THEN 1 
    WHEN 'GREEN' THEN 2 
    WHEN 'BLUE' THEN 3 
    WHEN 'ORANGE' THEN 4 
    ELSE 5 END

ব্যবহারিক প্রয়োগ: অর্ডার স্ট্যাটাস: 'PENDING', 'PROCESSING', 'SHIPPED', 'DELIVERED', 'CANCELLED' — এই ক্রমে দেখাতে FIELD() দারুণ কাজ করে।

  1. MySQL-এ নির্দিষ্ট সেলের মান বের করার পদ্ধতি

  2. MySQL-এ নির্দিষ্ট কলামের মান সওয়াপ (Swap) করা

  3. MySQL에서 LIKE로 특정 이름(예: Johnson으로 시작) 검색하기

  4. MySQL-এ প্রথম ৩ রোয়ের কলাম মান নির্দিষ্ট মান দিয়ে আপডেট করা