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

MySQL में SET कॉलम पर +0 ऑपरेशन क्या करता है?

MySQL SET डेटा टाइप पर +0 का प्रभाव: बिटमास्क मान प्राप्त करना

MySQL में SET डेटा टाइप आंतरिक रूप से बिटमास्क के रूप में संग्रहीत होता है। इस पर +0 (या CAST(... AS UNSIGNED)) लागू करने से इसका संख्यात्मक बिटमास्क मान प्राप्त होता है।

उदाहरण

CREATE TABLE SetZeroDemo (
    Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    TechnicalSkills SET('C', 'Spring Framework/Hibernate', 'Python', 'Django Framework', 'Core Java') NOT NULL
);

INSERT INTO SetZeroDemo (TechnicalSkills)
VALUES ('C,Spring Framework/Hibernate,Python,Django Framework,Core Java');

क्वेरी

SELECT TechnicalSkills, TechnicalSkills+0 AS BitmaskValue FROM SetZeroDemo;

आउटपुट

+-----------------------------------------------------------------+--------------+
| TechnicalSkills                                                 | BitmaskValue |
+-----------------------------------------------------------------+--------------+
| C,Spring Framework/Hibernate,Python,Django Framework,Core Java  | 31           |
+-----------------------------------------------------------------+--------------+

गणना कैसे होती है

SET सदस्यों को 0-आधारित सूचकांक दिया जाता है। प्रत्येक चयनित सदस्य संबंधित बिट सेट करता है:

सदस्य सूचकांक:  0        1                    2       3                4
मान:           C        Spring/Hibernate     Python  Django Framework Core Java
बिट मान:       2^0=1    2^1=2                2^2=4   2^3=8            2^4=16
योग:           1 + 2 + 4 + 8 + 16 = 31

उपयोग केस

  • बिटवाइज़ ऑपरेशन (&, |, ^) द्वारा सेट सदस्यता जांचना/बदलना।
  • उदाहरण: WHERE (skills + 0) & 4 → Python कौशल वाले रिकॉर्ड।
  • संख्यात्मक मान को वापस SET स्ट्रिंग में बदलने के लिए CAST(31 AS CHAR) उपयोग करें (MySQL स्वचालित रूप से करता है)।

सीमाएं

  • SET अधिकतम 64 सदस्य तक सीमित (64-बिट पूर्णांक)।
  • सदस्य नाम में कॉमा (,) नहीं हो सकता।
  • बड़े सेट के लिए अलग लुकअप टेबल (many-to-many) बेहतर है।
  1. - MySQL क्वेरी में स्लैश (/) ऑपरेटर का अर्थ - विभाजन संक्रिया

    MySQL में स्लैश (/) ऑपरेटर विभाजन (division) संक्रिया के लिए उपयोग किया जाता है। यह दो संख्याओं या कॉलम मानों को विभाजित करके परिणाम देता है। सिंटैक्स SELECT numerator / denominator AS result_column FROM table_name; व्यावहारिक उदाहरण 1. टेबल बनाएं और डेटा डालें INSERT INTO DemoTable719 VALUES (2

  1. - MySQL SELECT (COLNAME) में पैरेंथेसिस का क्या अर्थ है?

    MySQL में SELECT (COLNAME) का उपयोग उस कॉलम के लिए एक उपनाम (alias) बनाने के लिए किया जाता है। आइए एक उदाहरण देखते हैं और एक टेबल बनाते हैं: mysql> create table DemoTable865( FirstName varchar(100), LastName varchar(100) ); Query OK, 0 rows affected (0.77 sec) इन्सर्ट कमांड का उपयोग

  1. - MySQL में SELECT @@identity क्या करता है?

    @@identity से वर्तमान सत्र का अंतिम AUTO_INCREMENT मान प्राप्त करना @@identity सिस्टम वेरिएबल वर्तमान कनेक्शन/सत्र में AUTO_INCREMENT कॉलम में डाला गया अंतिम मान लौटाता है। यह LAST_INSERT_ID() के समान है लेकिन सत्र-विशिष्ट है। टेबल और डेटा CREATE TABLE DemoTable( UserId INT NOT NULL AUTO_INCRE