MySQL SET डेटा टाइप और FIND_IN_SET(): पूर्वनिर्धारित मान सेट
MySQL का SET डेटा टाइप एक कॉलम में पूर्वनिर्धारित मानों के सेट में से शून्य या अधिक मान स्टोर करने की अनुमति देता है। FIND_IN_SET() का उपयोग करके इसमें मान खोज सकते हैं।
उदाहरण: देश सेट कॉलम
टेबल बनाएं:
CREATE TABLE DemoTable (
CountryName SET('US', 'UK', 'AUS')
);
डेटा डालें:
INSERT INTO DemoTable VALUES ('US'), ('UK');
डेटा:
+-------------+ | CountryName | +-------------+ | US | | UK | +-------------+
FIND_IN_SET से खोजें
SELECT * FROM DemoTable WHERE FIND_IN_SET('UK', CountryName) > 0;
परिणाम:
+-------------+ | CountryName | +-------------+ | UK | +-------------+
SET टाइप विशेषताएं
- अधिकतम 64 सदस्य
- आंतरिक रूप से बिटमैप के रूप में स्टोर (कॉम्पैक्ट)
- एक साथ कई मान:
'US,UK' - डुप्लिकेट स्वचालित हटाए जाते हैं
- क्रम परिभाषा क्रम के अनुसार
SET vs ENUM
| विशेषता | ENUM | SET |
|---|---|---|
| मान प्रति पंक्ति | एक | शून्य या अधिक |
| अधिकतम सदस्य | 65,535 | 64 |
| स्टोरेज | 1-2 बाइट | 1-8 बाइट |
| खोज | = 'value' | FIND_IN_SET() |
SET कॉलम में एकाधिक मान