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

MySQL में CONCAT और IFNULL से मान जोड़ें और NULL हैंडल करें

MySQL में CONCAT() फंक्शन से स्ट्रिंग जोड़ें और IFNULL() से NULL मानों को डिफॉल्ट मान से बदलें।

सिंटैक्स

SELECT CONCAT('Prefix: ', IFNULL(yourColumnName, 'Default Value')) AS result_column 
FROM yourTableName;

उदाहरण के साथ समझें

टेबल बनाएं:

CREATE TABLE ConcatValues (
    Id INT NOT NULL AUTO_INCREMENT,
    FirstName VARCHAR(20),
    MiddleName VARCHAR(20),
    LastName VARCHAR(20),
    PRIMARY KEY(Id)
);

रिकॉर्ड डालें (MiddleName में NULL):

INSERT INTO ConcatValues(FirstName, MiddleName, LastName) VALUES('John', NULL, 'Smith');
INSERT INTO ConcatValues(FirstName, MiddleName, LastName) VALUES('Carol', NULL, 'Taylor');
INSERT INTO ConcatValues(FirstName, MiddleName, LastName) VALUES('David', NULL, 'Miller');

सभी रिकॉर्ड देखें:

SELECT * FROM ConcatValues;

आउटपुट:

+----+-----------+------------+----------+
| Id | FirstName | MiddleName | LastName |
+----+-----------+------------+----------+
| 1  | John      | NULL       | Smith    |
| 2  | Carol     | NULL       | Taylor   |
| 3  | David     | NULL       | Miller   |
+----+-----------+------------+----------+

NULL हैंडल करते हुए कॉनकैटनेट करने का क्वेरी

SELECT CONCAT('The middle name is: ', IFNULL(MiddleName, 'Not Available')) AS MiddleName 
FROM ConcatValues;

परिणाम:

+----------------------------------+
| MiddleName                       |
+----------------------------------+
| The middle name is: Not Available|
| The middle name is: Not Available|
| The middle name is: Not Available|
+----------------------------------+

COALESCE() का उपयोग (बेहतर विकल्प)

COALESCE() एकाधिक आर्गुमेंट लेता है और पहला नॉन-NULL मान लौटाता है:

SELECT CONCAT('Name: ', COALESCE(FirstName, ''), ' ', COALESCE(MiddleName, ''), ' ', COALESCE(LastName, '')) 
AS FullName FROM ConcatValues;

पूरा नाम बनाने का उदाहरण

SELECT CONCAT(
    COALESCE(FirstName, ''), ' ',
    COALESCE(MiddleName, ''), ' ',
    COALESCE(LastName, '')
) AS FullName FROM ConcatValues;

CONCAT_WS() का उपयोग (सेपरेटर के साथ)

CONCAT_WS() (With Separator) NULL मानों को स्वचालित रूप से छोड़ देता है:

SELECT CONCAT_WS(' ', FirstName, MiddleName, LastName) AS FullName FROM ConcatValues;

परिणाम: "John Smith", "Carol Taylor", "David Miller" (NULL को छोड़कर)

महत्वपूर्ण अंतर

फंक्शनव्यवहार
CONCAT()कोई भी आर्गुमेंट NULL हो तो परिणाम NULL
CONCAT_WS()NULL आर्गुमेंट को छोड़ देता है
IFNULL(a,b)2 आर्गुमेंट: a NULL हो तो b
COALESCE(a,b,c...)कई आर्गुमेंट: पहला नॉन-NULL
  1. - MySQL में NULL मानों के अनुसार ऑर्डर करने की क्वेरी

    उदाहरण टेबल बनाएं: mysql> create table DemoTable707 ( -> StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> StudentFirstName varchar(100), -> StudentMarks int -> ); Query OK, 0 rows affected (0.59 sec) रिकॉर्ड डालें (कुछ NULL नाम के साथ): mysql> insert into Demo

  1. - MySQL क्वेरी: केवल खाली और NULL मान एक साथ प्रदर्शित करना

    NULL चेक करने के लिए IS NULL का उपयोग करें। खाली मानों के लिए, आपको खाली स्ट्रिंग से चेक करना होगा। अब एक उदाहरण देखते हैं। पहले एक टेबल बनाते हैं: mysql> create table DemoTable691( PlayerId int NOT NULL AUTO_INCREMENT PRIMARY KEY, PlayerName varchar(100), PlayerScore int ); Query OK, 0 rows affe

  1. - MySQL में UPDATE और WHERE से खाली मानों को NULL में बदलें

    MySQL में खाली स्ट्रिंग () मानों को NULL में बदलने के लिए UPDATE स्टेटमेंट के साथ WHERE क्लॉज का उपयोग करें। यह डेटा सफाई, आयात के बाद सामान्यीकरण, और NULL बनाम खाली स्ट्रिंग अस्पष्टता दूर करने के लिए महत्वपूर्ण है। सिंटैक्स UPDATE table_name SET column_name = NULL WHERE column_name = ; व्यावहारिक