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

MySQL में IFNULL का उपयोग करके NULL मानों को 1 के रूप में प्रदर्शित/अपडेट करें

MySQL में NULL मानों को संभालना: IFNULL() और COALESCE()

MySQL में IFNULL() फ़ंक्शन का उपयोग करके आप NULL मानों को डिफ़ॉल्ट मान से बदल सकते हैं। यह लेख दिखाता है कि कैसे NULL मानों को 1 से अपडेट करें और उन्हें प्रदर्शित करें।

टेबल बनाना

mysql> CREATE TABLE DemoTable1963 (
    -> Counter INT
    -> );
Query OK, 0 rows affected (0.00 sec)

NULL मानों सहित डेटा डालना

mysql> INSERT INTO DemoTable1963 VALUES (20);
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO DemoTable1963 VALUES (NULL);
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO DemoTable1963 VALUES (99);
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO DemoTable1963 VALUES (49);
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO DemoTable1963 VALUES (NULL);
Query OK, 1 row affected (0.00 sec)

मूल डेटा

mysql> SELECT * FROM DemoTable1963;
+---------+
| Counter |
+---------+
|      20 |
|    NULL |
|      99 |
|      49 |
|    NULL |
+---------+
5 rows in set (0.00 sec)

NULL मानों को 1 से अपडेट करना (IFNULL का उपयोग करके)

mysql> UPDATE DemoTable1963 
    -> SET Counter = IFNULL(Counter, 0) + 1 
    -> WHERE Counter IS NULL;
Query OK, 2 rows affected (0.00 sec)
Rows matched: 2  Changed: 2  Warnings: 0

अपडेट के बाद डेटा

mysql> SELECT * FROM DemoTable1963;
+---------+
| Counter |
+---------+
|      20 |
|       1 |  -- NULL था, अब 1
|      99 |
|      49 |
|       1 |  -- NULL था, अब 1
+---------+
5 rows in set (0.00 sec)

क्वेरी विश्लेषण

  • IFNULL(Counter, 0): यदि Counter NULL है तो 0 लौटाता है, अन्यथा Counter मान
  • + 1: परिणाम में 1 जोड़ता है
  • WHERE Counter IS NULL: केवल NULL पंक्तियों को अपडेट करता है (दक्षता के लिए)

केवल प्रदर्शन के लिए (डेटा बदले बिना)

SELECT 
    Counter,
    IFNULL(Counter, 1) AS DisplayValue
FROM DemoTable1963;

परिणाम

+---------+--------------+
| Counter | DisplayValue |
+---------+--------------+
|      20 |           20 |
|    NULL |            1 |
|      99 |           99 |
|      49 |           49 |
|    NULL |            1 |
+---------+--------------+

IFNULL vs COALESCE vs CASE

फ़ंक्शनतर्कमानक SQLविवरण
IFNULL(expr, val)2नहीं (MySQL)सरल NULL प्रतिस्थापन
COALESCE(v1, v2, ...)2+हाँ (ANSI)पहला गैर-NULL लौटाता है
CASE WHEN ...लचीलाहाँजटिल तर्क

COALESCE उदाहरण (अधिक लचीला)

-- पहला गैर-NULL मान चुनें
SELECT COALESCE(Phone, Email, 'No Contact') AS ContactInfo FROM Users;

-- एकाधिक फॉलबैक
SELECT COALESCE(Commission, Bonus, Salary * 0.1, 0) AS Incentive FROM Employees;

NULL-सुरक्षित तुलना ऑपरेटर

-- NULL = NULL अज्ञात है (TRUE नहीं)
SELECT NULL = NULL;  -- NULL

-- NULL-सुरक्षित समानता
SELECT NULL <=> NULL;  -- 1 (TRUE)

-- WHERE क्लॉज में उपयोग
SELECT * FROM Table WHERE Col <=> NULL;  -- NULL मान ढूंढता है

अन्य सामान्य NULL संचालन

-- NULL को 0 के रूप में गणना में उपयोग
SELECT SUM(IFNULL(Amount, 0)) FROM Transactions;

-- NULL को खाली स्ट्रिंग के रूप में संयोजन में
SELECT CONCAT(FirstName, ' ', IFNULL(MiddleName, ''), ' ', LastName) FROM Users;

-- शर्तीय अपडेट
UPDATE Table SET Col = IFNULL(Col, 0) + 1 WHERE Col IS NULL OR Col < 100;

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

  1. डेटा प्रकार सुसंगतता बनाए रखें: IFNULL(int_col, 0) नहीं IFNULL(int_col, '0')
  2. प्रदर्शन के लिए WHERE क्लॉज में IS NULL का उपयोग करें (इंडेक्स उपयोग कर सकता है)
  3. स्कीमा डिज़ाइन में NOT NULL और डिफ़ॉल्ट मानों पर विचार करें
  4. पोर्टेबल कोड के लिए COALESCE पसंद करें
  1. - MySQL में IFNULL से कॉलम में NULL मानों को विशिष्ट मान से बदलें

    IFNULL(expr, default) फ़ंक्शन का उपयोग करके क्वेरी परिणाम में NULL मानों को निर्दिष्ट डिफ़ॉल्ट मान (जैसे Robert) से बदलें। टेबल बनाएं mysql> CREATE TABLE DemoTable1878 (FirstName VARCHAR(20)); डेटा डालें mysql> INSERT INTO DemoTable1878 VALUES(Chris), (NULL), (David), (NULL); NULL को Robert

  1. - MySQL में NOT NULL मान के लिए 1 सेट करें

    MySQL में किसी कॉलम के NOT NULL मान होने पर 1 और NULL होने पर 0 लौटाने के लिए IF() फंक्शन के साथ IS NOT NULL ऑपरेटर का उपयोग करें। यह डेटा वैलिडेशन, रिपोर्टिंग, और कंडीशनल एग्रीगेशन के लिए उपयोगी है। बुनियादी सिंटैक्स SELECT IF( IS NOT NULL, 1, 0) AS anyAliasName; आउटपुट: 1 (क्योंकि खाली स्ट्रिंग N

  1. Java में JDBC ResultSet से MySQL टेबल मान प्रदर्शित करें Java में JDBC ResultSet से MySQL टेबल मान प्रदर्शित करें

    टेबल और डेटा insert into demo87 values(John,21), (David,23), (Bob,22); Java कोड: ResultSet से HashMap में डेटा import java.sql.*; import java.util.*; import com.mysql.jdbc.Statement; public class TableValuesDemo { public static void main(String[] args) { Connection con = null;