मुझे एक ही समस्या थी, "SET" प्रकार के साथ एक डेटाबेस फ़ील्ड के साथ, जो एक एनुम प्रकार है।
मैंने एक मूल्य जोड़ने की कोशिश की जो उस सूची में नहीं था।
मैंने जो मान जोड़ने का प्रयास किया, उसमें दशमलव मान 256 था, लेकिन enum सूची में केवल 8 मान थे।
1: 1 -> A
2: 2 -> B
3: 4 -> C
4: 8 -> D
5: 16 -> E
6: 32 -> F
7: 64 -> G
8: 128 -> H
इसलिए मुझे सिर्फ क्षेत्र में अतिरिक्त मूल्य जोड़ना पड़ा।
इस प्रलेखन प्रविष्टि को पढ़ने से मुझे समस्या को समझने में मदद मिली।
MySQL, SET मानों को संख्यानुसार संग्रहीत करता है, पहले सेट सदस्य के अनुरूप संग्रहीत मूल्य के कम-क्रम बिट के साथ। यदि आप संख्यात्मक संदर्भ में SET मान प्राप्त करते हैं, तो पुनर्प्राप्त किया गया मान स्तंभ मान सेट करने वाले सेट सदस्यों के लिए बिट सेट है। उदाहरण के लिए, आप इस तरह से एक SET कॉलम से संख्यात्मक मान प्राप्त कर सकते हैं:
mysql> SELECT set_col+0 FROM tbl_name; If a number is stored into a
यदि किसी संख्या को SET स्तंभ में संग्रहीत किया जाता है, तो संख्या के द्विआधारी प्रतिनिधित्व में सेट किए गए बिट्स स्तंभ मान में सेट सदस्यों को निर्धारित करते हैं। SET ('a', 'b', 'c', 'd') के रूप में निर्दिष्ट कॉलम के लिए, सदस्यों के निम्नलिखित दशमलव और बाइनरी मान हैं।
SET Member Decimal Value Binary Value
'a' 1 0001
'b' 2 0010
'c' 4 0100
'd' 8 1000
यदि आप इस कॉलम में 9 का मान प्रदान करते हैं, जो कि बाइनरी में 1001 है, इसलिए पहले और चौथे SET मान के सदस्य 'a' और 'd' चुने गए हैं और परिणामी मान 'a, d' है।