मेरी बनाने तालिका स्क्रिप्ट से, मैं थोड़ा के रूप में hasMultipleColors क्षेत्र परिभाषित किया है:MySQL हमेशा लौटने बीआईटी के रूप में रिक्त मानों
hasMultipleColors BIT NOT NULL,
जब एक सम्मिलित चल रहा है, वहाँ कोई चेतावनी इस के लिए फेंक दिया या अन्य बीआईटी हैं खेतों, लेकिन पंक्तियों का चयन से पता चलता है कि सभी बीआईटी मूल्य खाली हैं।
मैन्युअल रूप से कमांड लाइन से इन रिकॉर्ड्स को अपडेट करने का प्रयास करने से अजीब प्रभाव मिलता है - यह दिखाता है कि रिकॉर्ड मिलान और बदल गया (यदि उपयुक्त हो), लेकिन फिर भी हमेशा खाली दिखाता है।
सर्वर संस्करण: 5.5.24-0ubuntu0.12.04.1 (उबंटू)
mysql> update pumps set hasMultipleColors = 1 where id = 1;
Query OK, 0 rows affected (0.00 sec)
Rows matched: 1 Changed: 0 Warnings: 0
mysql> select hasMultipleColors from pumps where id = 1;
+-------------------+
| hasMultipleColors |
+-------------------+
| |
+-------------------+
1 row in set (0.00 sec)
mysql> update pumps set hasMultipleColors = b'0' where id = 1;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> select hasMultipleColors from pumps where id = 1;
+-------------------+
| hasMultipleColors |
+-------------------+
| |
+-------------------+
1 row in set (0.00 sec)
किसी भी विचार?
इसके लिए आप 'BIT' के बजाय' BOOL' का उपयोग क्यों नहीं कर रहे हैं? अपने क्षेत्र के नाम के अर्थशास्त्र से, यह अधिक समझ में आता है। – Romain
क्या बूल बनाम बीआईटी बनाम टिन्यिनट डेटा-प्रकार के बारे में कुछ पढ़ा गया था, और मैंने जो ले लिया था, वह था कि MySQL बहुत खराब तरीके से बूल को संभालता है - अन्य आरडीबीएमएस समाधानों के लिए पोर्टेबल नहीं - इसलिए यह आमतौर पर टिन्यिनट के साथ जाने के लिए आदर्श है या बीआईटी (अधिक कुशल)। – CdrXndr