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

MySQL-এ ENUM ফিল্ড ব্যবহার করে রো সিলেক্ট করা

MySQL-এ ENUM ডেটা টাইপ ব্যবহার করে পূর্বনির্ধারিত ভ্যালু সেট করা যায়। ENUM কলাম থেকে নির্দিষ্ট ভ্যালু বা NULL বের করার কুয়েরি দেখানো হলো।

টেবিল তৈরি

CREATE TABLE DemoTable (
    EmployeeStatus ENUM('FULLTIME','Intern') DEFAULT NULL
);

ডেটা ইনসার্ট

INSERT INTO DemoTable VALUES('FULLTIME');
INSERT INTO DemoTable VALUES('Intern');
INSERT INTO DemoTable VALUES('Intern');
INSERT INTO DemoTable VALUES(); -- NULL

ফলাফল

+----------------+
| EmployeeStatus |
+----------------+
| FULLTIME       |
| Intern         |
| Intern         |
| NULL           |
+----------------+

কুয়েরি: Intern না হয়ে অন্যগুলো (FULLTIME + NULL)

SELECT * FROM DemoTable 
WHERE EmployeeStatus IS NULL OR EmployeeStatus <> 'Intern';

ফলাফল

+----------------+
| EmployeeStatus |
+----------------+
| FULLTIME       |
| NULL           |
+----------------+

ENUM সম্পর্কে জানা দরকার

  • ENUM ভ্যালু ইন্টারনালি ইন্টিজার হিসেবে স্টোর হয় (১, ২, ...)
  • ORDER BY EmployeeStatus দিলে ENUM ডিক্লারেশন অর্ডারে সর্ট হবে
  • NULL আলাউ থাকলে ডিফল্ট NULL হয়
  • অবৈধ ভ্যালু ইনসার্ট করলে ওয়ার্নিং দিয়ে খালি স্ট্রিং ('') স্টোর হয়

বিকল্প কুয়েরি

-- IN ব্যবহার
WHERE EmployeeStatus IN ('FULLTIME') OR EmployeeStatus IS NULL

-- NOT IN (NULL হ্যান্ডলিং সাবধানতা)
WHERE EmployeeStatus NOT IN ('Intern') -- NULL রো আসবে না!
WHERE EmployeeStatus NOT IN ('Intern') OR EmployeeStatus IS NULL -- সঠিক
  1. MySQL-এ IF() ফাংশন ব্যবহার করে শুধু NULL বা ০ ভ্যালু কন্টেইনিং ফিল্ড আপডেট করুন

  2. MySQL-এ নির্বাচিত রোয়ের সাইজ বের করা (CHAR_LENGTH)

  3. MySQL-এ ORDER BY COUNT(*) DESC LIMIT 1 দিয়ে সর্বাধিক ফ্রিকোয়েন্সি वाला মান বের করা

  4. MySQL SLES রিপোজিটরি দিয়ে MySQL আপগ্রেড