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

MySQL क्वेरी में परिणाम न होने पर भी मान कैसे लौटाएं?


MySQL में IFNULL() फंक्शन का उपयोग करके क्वेरी का परिणाम NULL होने पर डिफ़ॉल्ट मान लौटाएं।

सिंटैक्स

SELECT IFNULL((subquery), 'default_value') AS result;

उदाहरण

टेबल बनाना

mysql> create table IfNullDemo (
-> Id int,
-> Name varchar(100)
-> ); Query OK, 0 rows affected (0.60 sec)

रिकॉर्ड डालना

mysql> insert into IfNullDemo values(1,'John');
mysql> insert into IfNullDemo values(200,'Sam');
mysql> insert into IfNullDemo values(204,'Carol');
mysql> insert into IfNullDemo values(510,'Johnson');

मौजूदा ID के लिए (सत्य स्थिति)

mysql> select ifnull((select Id from IfNullDemo where Id = 200), 'No Result Found') As ResultFound;
+-------------+
| ResultFound |
+-------------+
| 200         |
+-------------+

मौजूद न होने वाले ID के लिए (असत्य स्थिति)

mysql> select ifnull((select Id from IfNullDemo where Id = 400), 'No Result Found') As ResultFound;
+-----------------+
| ResultFound     |
+-----------------+
| No Result Found |
+-----------------+

IFNULL vs COALESCE vs CASE

फंक्शनपैरामीटरमानकविवरण
IFNULL(expr, val)2MySQL-विशिष्टसरल, दो मान
COALESCE(v1, v2, ...)2+ANSI SQLपहला गैर-NULL लौटाता है
CASE WHEN ... THEN ... ELSE ... ENDलचीलाANSI SQLजटिल शर्तों के लिए

व्यावहारिक उदाहरण

-- COALESCE के साथ एकाधिक फॉलबैक
SELECT COALESCE(phone, email, 'संपर्क जानकारी नहीं') AS contact FROM users;

-- CASE के साथ शर्तें
SELECT CASE 
  WHEN COUNT(*) > 0 THEN 'मिला'
  ELSE 'नहीं मिला'
END AS status
FROM users WHERE id = 999;

-- एग्रीगेट में NULL हैंडलिंग
SELECT IFNULL(SUM(amount), 0) AS total FROM orders WHERE user_id = 123;

नोट

  • IFNULL केवल NULL मान पर फॉलबैक करता है, खाली स्ट्रिंग या 0 पर नहीं
  • सबक्वेरी एकल मान लौटानी चाहिए (स्केलर सबक्वेरी)
  • प्रदर्शन के लिए इंडेक्स सुनिश्चित करें

  1. - MySQL में IF स्टेटमेंट के परिणाम के रूप में स्ट्रिंग कैसे लौटाएं

    IF() फंक्शन के साथ कंडीशनल स्ट्रिंग परिणाम MySQL में IF() फंक्शन का उपयोग करके शर्त के आधार पर अलग-अलग स्ट्रिंग मान लौटाएं। आइए पहले एक टेबल बनाते हैं: mysql> CREATE TABLE DemoTable ( Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, EmployeeSalary INT ); रिकॉर्ड्स इन्सर्ट करें: mysql> INSER

  1. - MySQL में UPDATE का उपयोग करके कॉलम मान रिप्लेस करना

    WHERE क्लॉज के साथ विशिष्ट पंक्ति का कॉलम मान अपडेट करना किसी विशिष्ट पंक्ति के कॉलम मान को बदलने के लिए UPDATE के साथ SET और WHERE का उपयोग करें। आइए पहले एक टेबल बनाते हैं: mysql> CREATE TABLE DemoTable ( StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY, Score INT ); रिकॉर्ड्स इन्सर्ट

  1. - MySQL में Nth अधिकतम मान खोजने का क्वेरी

    आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable -> ( -> Value int -> ); Query OK, 0 rows affected (0.59 sec) इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें: mysql> insert into DemoTable values(40); Query OK, 1 row affected (0.26 sec) mysql> insert into DemoTable