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

MySQL में TINYINT कॉलम पर <> 1 या IS NULL शर्त से रिकॉर्ड चुनें

MySQL में TINYINT कॉलम (आमतौर पर बूलियन के लिए उपयोग) पर <> 1 या IS NULL शर्त से रिकॉर्ड फ़िल्टर कर सकते हैं।

उदाहरण: अविवाहित (isMarried ≠ 1) या अज्ञात (NULL) कर्मचारी

1. टेबल बनाएं

mysql> CREATE TABLE DemoTable (
    -> EmployeeId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> EmployeeName VARCHAR(20),
    -> isMarried TINYINT
    -> );

2. डेटा डालें

mysql> INSERT INTO DemoTable(EmployeeName, isMarried) VALUES('Chris', NULL);
mysql> INSERT INTO DemoTable(EmployeeName, isMarried) VALUES('David', 1);
mysql> INSERT INTO DemoTable(EmployeeName, isMarried) VALUES('Mike', 0);
mysql> INSERT INTO DemoTable(EmployeeName, isMarried) VALUES('Sam', NULL);
mysql> INSERT INTO DemoTable(EmployeeName, isMarried) VALUES('Bob', 0);

3. सभी रिकॉर्ड

mysql> SELECT * FROM DemoTable;
+------------+--------------+-----------+
| EmployeeId | EmployeeName | isMarried |
+------------+--------------+-----------+
| 1          | Chris        | NULL      |
| 2          | David        | 1         |
| 3          | Mike         | 0         |
| 4          | Sam          | NULL      |
| 5          | Bob          | 0         |
+------------+--------------+-----------+

4. शर्त: isMarried ≠ 1 OR IS NULL

mysql> SELECT * FROM DemoTable
    -> WHERE isMarried <> 1 OR isMarried IS NULL;

5. परिणाम

+------------+--------------+-----------+
| EmployeeId | EmployeeName | isMarried |
+------------+--------------+-----------+
| 1          | Chris        | NULL      |
| 3          | Mike         | 0         |
| 4          | Sam          | NULL      |
| 5          | Bob          | 0         |
+------------+--------------+-----------+

तर्क तालिका

isMarried<> 1IS NULLOR परिणाम
NULLUNKNOWNTRUETRUE ✓
0TRUEFALSETRUE ✓
1FALSEFALSEFALSE ✗

महत्वपूर्ण: NULL तुलना

  • NULL <> 1 का परिणाम UNKNOWN होता है (TRUE नहीं)
  • इसलिए OR isMarried IS NULL आवश्यक है
  • NOT (isMarried = 1) भी NULL को बाहर रखेगा

बेहतर विकल्प

-- स्पष्ट और सुरक्षित
WHERE isMarried IS NULL OR isMarried = 0

-- या COALESCE के साथ
WHERE COALESCE(isMarried, 0) <> 1

-- या NOT IN (NULL सुरक्षित नहीं)
WHERE isMarried NOT IN (1)  -- NULL के लिए FALSE देता है!

सर्वोत्तम अभ्यास

बूलियन फ्लैग के लिए NOT NULL DEFAULT 0 उपयोग करें ताकि NULL हैंडलिंग सरल हो।

  1. - MySQL में IS NULL OR !=1 शर्तों के आधार पर रिकॉर्ड दिखाएं

    NULL जांच और असमानता तुलना का संयोजन जब एक कॉलम में NULL मान हों और आपको वे पंक्तियां चाहिए जहां कॉलम NULL हो या किसी विशिष्ट मान के बराबर न हो, तो IS NULL OR column != value का उपयोग करें। टेबल और डेटा CREATE TABLE DemoTable ( Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, Name VARCHAR(100),

  1. - MySQL में सबक्वेरी और MAX() का उपयोग करके रिकॉर्ड्स से अधिकतम मान लौटाना

    MySQL में अधिकतम मान वाली पंक्ति ढूंढना एक कॉलम में अधिकतम मान वाली पंक्ति ढूंढने के लिए, एक सबक्वेरी के साथ MAX() एग्रीगेट फ़ंक्शन का उपयोग करें जो फ़िल्टर मान प्रदान करता है। उदाहरण: शीर्ष खिलाड़ी स्कोर ढूंढना SELECT * FROM DemoTable1449; +----------+-------------+ | PlayerId | PlayerScore | +--

  1. - MySQL में GREATEST() से किसी भी कॉलम में NULL वाली पंक्तियाँ खोजें

    GREATEST() फ़ंक्शन अपने तर्कों में से सबसे बड़ा मान लौटाता है। यदि कोई भी तर्क NULL है, तो परिणाम NULL होता है। इस गुण का उपयोग करके किसी भी कॉलम में NULL वाली पंक्तियाँ खोज सकते हैं। टेबल बनाएं mysql> CREATE TABLE DemoTable1862 ( Value1 INT, Value2 INT, Value3 INT, Value4 INT ); डेटा डालें