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

MySQL में खाली और NULL मान को दूसरे कॉलम के मान से भरना

IF और LENGTH से खाली/NULL मान हैंडल करना

जब किसी कॉलम में खाली स्ट्रिंग ('') या NULL हो और उसकी जगह दूसरे कॉलम का मान दिखाना हो, तो IF() और LENGTH() का उपयोग करें।

टेबल बनाना और डेटा इन्सर्ट करना

CREATE TABLE DemoTable839(
    StudentFirstName VARCHAR(100),
    StudentLastName VARCHAR(100)
);

INSERT INTO DemoTable839 VALUES('Chris', 'Brown');
INSERT INTO DemoTable839 VALUES('', 'Taylor');      -- खाली स्ट्रिंग
INSERT INTO DemoTable839 VALUES(NULL, 'Taylor');    -- NULL
INSERT INTO DemoTable839 VALUES('Adam', 'Smith');

मौजूदा डेटा

+------------------+-----------------+
| StudentFirstName | StudentLastName |
+------------------+-----------------+
| Chris            | Brown           |
|                  | Taylor          |
| NULL             | Taylor          |
| Adam             | Smith           |
+------------------+-----------------+

क्वेरी: खाली/NULL को लास्ट नेम से बदलना

SELECT IF(LENGTH(StudentFirstName), StudentFirstName, StudentLastName) 
FROM DemoTable839;

आउटपुट

+---------------------------------------------------------------+
| if(length(StudentFirstName),StudentFirstName,StudentLastName) |
+---------------------------------------------------------------+
| Chris                                                         |
| Taylor                                                        |
| Taylor                                                        |
| Adam                                                          |
+---------------------------------------------------------------+

कैसे काम करता है

  • LENGTH('') = 0 लौटाता है (फाल्सी मान)
  • LENGTH(NULL) = NULL लौटाता है (फाल्सी मान)
  • LENGTH('Chris') = 5 लौटाता है (ट्रुथी मान)
  • IF(condition, true_val, false_val) शर्त के अनुसार मान चुनता है

बेहतर विकल्प: COALESCE और NULLIF

-- खाली स्ट्रिंग को NULL में बदलकर COALESCE उपयोग करें
SELECT COALESCE(NULLIF(TRIM(StudentFirstName), ''), StudentLastName) 
FROM DemoTable839;

यह तरीका अधिक मजबूत है क्योंकि:

  1. TRIM() व्हाइटस्पेस हटाता है
  2. NULLIF('', '') खाली स्ट्रिंग को NULL बनाता है
  3. COALESCE() पहला नॉन-NULL मान लौटाता है

IFNULL का उपयोग (सिर्फ NULL के लिए)

SELECT IFNULL(StudentFirstName, StudentLastName) FROM DemoTable839;

नोट: यह खाली स्ट्रिंग ('') को नहीं पकड़ता, केवल NULL को।

  1. - MySQL में NULL या नॉन-NULL मानों वाले टेबल के सभी फील्ड अपडेट करें

    आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable -> ( -> Id int, -> Name varchar(20) -> ); Query OK, 0 rows affected (0.58 sec) इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें: mysql> insert into DemoTable values(10,NULL); Query OK, 1 row affected (0.32 sec) mysql&

  1. - MySQL में NULL और NOT NULL रिकॉर्ड वाले कॉलम से केवल NOT NULL मान प्रदर्शित करें

    इसके लिए आप IS NOT NULL प्रॉपर्टी का उपयोग कर सकते हैं। आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable1 ( DueDate date ); Query OK, 0 rows affected (0.00 sec) इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें: mysql> insert into DemoTable1 values(2019-09-10); Query OK, 1 r

  1. - MySQL में ENUM कॉलम से केवल 'NO' मानों की गणना करें

    MySQL में ENUM कॉलम पर सशर्त गणना के लिए बूलियन अभिव्यक्ति का योग (SUM(condition)) उपयोग कर सकते हैं। MySQL में TRUE = 1 और FALSE = 0 होता है। टेबल बनाएं mysql> CREATE TABLE DemoTable1829 ( Name VARCHAR(20), isTopper ENUM(YES,NO) ); डेटा डालें mysql> INSERT INTO DemoTable1829 VALUES(