Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL BIT कॉलम खाली क्यों दिखाता है? मूल मान कैसे प्राप्त करें?

समस्या: BIT कॉलम खाली/अप्रिंटेबल दिखता है

MySQL में BIT डेटा प्रकार बाइनरी डेटा संग्रहीत करता है। SELECT * चलाने पर यह **खाली या अनप्रिंटेबल कैरेक्टर** दिखाता है क्योंकि क्लाइंट बाइनरी बाइट्स को टेक्स्ट के रूप में प्रदर्शित करने का प्रयास करता है।

समाधान: +0 या CAST से पूर्णांक में बदलें

SELECT yourBitColumnName + 0 FROM yourTableName;

या:

SELECT CAST(yourBitColumnName AS UNSIGNED) FROM yourTableName;

व्यावहारिक उदाहरण

1. BIT टेबल बनाएं

mysql> CREATE TABLE BitDemo (
    -> hasValidId BIT NOT NULL
    -> );
Query OK, 0 rows affected (1.21 sec)

2. डेटा डालें

mysql> INSERT INTO BitDemo VALUES(1);
mysql> INSERT INTO BitDemo VALUES(0);

3. डिफ़ॉल्ट SELECT (खाली दिखता है)

mysql> SELECT * FROM BitDemo;
+------------+
| hasValidId |
+------------+
|            |
|            |
+------------+
2 rows in set (0.00 sec)

4. +0 से मूल मान प्राप्त करें

mysql> SELECT hasValidId + 0 FROM BitDemo;
+--------------+
| hasValidId+0 |
+--------------+
| 1            |
| 0            |
+--------------+
2 rows in set (0.00 sec)

क्यों काम करता है?

  • BIT संख्यात्मक प्रकार है (बिट-फील्ड)
  • + 0 संख्यात्मक संदर्भ बाध्य करता है, बाइनरी→पूर्णांक रूपांतरण ट्रिगर करता है
  • CAST(... AS UNSIGNED) स्पष्ट रूप से समान काम करता है

BIT(1) vs BOOLEAN

MySQL में BOOLEAN / BOOL वास्तव में TINYINT(1) का पर्याय है, BIT(1) नहीं।

प्रकारभंडारणप्रदर्शनउपयोग
BIT(1)1 बिटबाइनरी (क्लाइंट पर खाली)कॉम्पैक्ट बिटमास्क
TINYINT(1) / BOOL1 बाइट0/1 (सामान्य)सामान्य बूलियन फ्लैग

सिफारिश

सामान्य बूलियन फ्लैग के लिए TINYINT(1) या BOOLEAN उपयोग करें। BIT केवल तभी जब बिट-स्तरीय पैकिंग आवश्यक हो (जैसे 64 फ्लैग एक BIT(64) में)।

  1. - MySQL में SHOW VARIABLES और ALTER TABLE AUTO_INCREMENT का उपयोग करके ऑटो-इन्क्रीमेंट सीड मान देखना और बदलना

    MySQL में SHOW VARIABLES और ALTER TABLE ... AUTO_INCREMENT का उपयोग करके ऑटो-इन्क्रीमेंट कॉन्फ़िगरेशन देखें और अगला मान सेट करें। ग्लोबल ऑटो-इन्क्रीमेंट सेटिंग्स देखना mysql> SHOW VARIABLES LIKE auto_inc%; आउटपुट +--------------------------+-------+ | Variable_name | Value | +-----

  1. - MySQL में किसी कॉलम में विशिष्ट मान की घटनाओं को गिनना

    MySQL में किसी कॉलम में किसी विशिष्ट मान की घटनाओं (occurrences) को गिनने के लिए COUNT(*) के साथ WHERE क्लॉज का उपयोग करें। सिंटैक्स SELECT COUNT(*) FROM table_name WHERE column_name = specific_value; व्यावहारिक उदाहरण 1. टेबल बनाएं और डेटा डालें INSERT INTO DemoTable VALUES (100, John), (101,

  1. - MySQL में चौथा सबसे बड़ा मान कैसे प्राप्त करें

    LIMIT OFFSET के साथ N-वां सबसे बड़ा मान अवरोही क्रम में क्रमबद्ध करके LIMIT 1 OFFSET N-1 से N-वां सबसे बड़ा मान प्राप्त करें। चौथे सबसे बड़े के लिए OFFSET 3। टेबल और डेटा CREATE TABLE DemoTable ( Amount INT ); Query OK, 0 rows affected (0.88 sec) INSERT INTO DemoTable VALUES(198); Query OK,