SET डेटा टाइप: विकल्प परिभाषित करना और देखना
MySQL का SET डेटा टाइप एक कॉलम में पूर्वनिर्धारित विकल्पों में से शून्य या अधिक मान स्टोर करने की अनुमति देता है।
टेबल बनाना SET विकल्पों के साथ
CREATE TABLE DemoTable (
Color SET('RED', 'GREEN', 'BLUE', 'YELLOW')
);
केस 1: DESC कमांड से विकल्प देखना
DESC DemoTable;
+-------+------------------------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+------------------------------------+------+-----+---------+-------+
| Color | set('RED','GREEN','BLUE','YELLOW') | YES | | NULL | |
+-------+------------------------------------+------+-----+---------+-------+
केस 2: INFORMATION_SCHEMA.COLUMNS से विकल्प देखना
SELECT COLUMN_TYPE FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'DemoTable' AND COLUMN_NAME = 'Color';
+------------------------------------+
| COLUMN_TYPE |
+------------------------------------+
| set('RED','GREEN','BLUE','YELLOW') |
+------------------------------------+
SET डेटा टाइप की विशेषताएं
- अधिकतम 64 मेंबर तक परिभाषित कर सकते हैं
- स्टोरेज: 1-8 बाइट्स (मेंबर्स की संख्या के आधार पर)
- एक कॉलम में कई मान कॉमा से अलग करके स्टोर होते हैं:
'RED,BLUE' - डुप्लीकेट मान अपने आप हट जाते हैं
- अमान्य मान इन्सर्ट करने पर वार्निंग मिलती है और खाली स्ट्रिंग स्टोर होती है
डेटा इन्सर्ट और क्वेरी उदाहरण
INSERT INTO DemoTable VALUES('RED,GREEN');
INSERT INTO DemoTable VALUES('BLUE');
INSERT INTO DemoTable VALUES('RED,YELLOW,BLUE');
-- खास मान वाले रिकॉर्ड खोजना
SELECT * FROM DemoTable WHERE FIND_IN_SET('RED', Color) > 0;
-- सभी यूनिक मान देखना
SELECT DISTINCT Color FROM DemoTable;
SET vs ENUM
| विशेषता | SET | ENUM |
|---|---|---|
| एक साथ मान | एकाधिक (0-64) | केवल एक |
| स्टोरेज | बिटमास्क | इंडेक्स नंबर |
| उपयोग | टैग्स, कैटेगरीज | स्टेटस, टाइप |