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 -- সঠিক