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

MySQL में IFNULL() का उपयोग करके ORDER BY में सशर्त कॉलम चयन कैसे करें?

MySQL में ORDER BY IFNULL(col1, col2) का उपयोग करके यदि पहला कॉलम NULL नहीं है तो उसके अनुसार, अन्यथा दूसरे कॉलम के अनुसार क्रमबद्ध किया जा सकता है।

सिंटैक्स

ORDER BY IFNULL(column1, column2)

उदाहरण

तालिका बनाएं और डेटा डालें:

mysql> CREATE TABLE DemoTable (Name VARCHAR(20), CountryName VARCHAR(20));
mysql> INSERT INTO DemoTable VALUES 
    -> ('Chris', NULL), ('David', 'AUS'), (NULL, 'UK'), (NULL, 'AUS'), (NULL, NULL);

डेटा

+-------+-------------+
| Name  | CountryName |
+-------+-------------+
| Chris | NULL        |
| David | AUS         |
| NULL  | UK          |
| NULL  | AUS         |
| NULL  | NULL        |
+-------+-------------+

क्वेरी: Name यदि NULL नहीं तो Name, अन्यथा CountryName द्वारा क्रमबद्ध करें

mysql> SELECT * FROM DemoTable
    -> ORDER BY IFNULL(Name, CountryName);

परिणाम

+-------+-------------+
| Name  | CountryName |
+-------+-------------+
| NULL  | NULL        |
| NULL  | AUS         |
| Chris | NULL        |
| David | AUS         |
| NULL  | UK          |
+-------+-------------+

व्याख्या

NameCountryNameIFNULL(Name, CountryName)क्रम
NULLNULLNULL1 (NULL पहले)
NULLAUSAUS2
ChrisNULLChris3
DavidAUSDavid4
NULLUKUK5

संबंधित फ़ंक्शन

  • COALESCE(col1, col2, col3, ...) - पहला गैर-NULL लौटाता है (एकाधिक कॉलम)
  • IFNULL(expr1, expr2) - MySQL-विशिष्ट, दो तर्क
  • NULLIF(expr1, expr2) - यदि समान तो NULL, अन्यथा expr1

उपयोग केस

  • प्राथमिक/द्वितीयक क्रम कॉलम
  • फॉलबैक क्रमबद्धीकरण
  • वैकल्पिक फील्ड के साथ रिपोर्टिंग
  1. - MySQL में आइटम का क्रम कैसे बदलें

    MySQL में आइटम का क्रम बदलने के लिए, ORDER BY एलियास नाम का उपयोग करें। पहले एक टेबल बनाते हैं: mysql> create table DemoTable653 (Product1Amount int,Product2Amount int); Query OK, 0 rows affected (0.42 sec) इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें: mysql> insert into DemoTable653

  1. - MySQL में ORDER BY CASE और IN() का उपयोग करके ग्रुप्ड फील्ड्स को कैसे ऑर्डर करें

    CASE WHEN ... IN() के साथ कस्टम ऑर्डरिंग ग्रुप्ड फील्ड्स को कस्टम ऑर्डर में सॉर्ट करने के लिए ORDER BY CASE के साथ IN() का उपयोग करें। CASE विभिन्न शर्तों का मूल्यांकन करता है जबकि ORDER BY मानों को आरोही/अवरोही क्रम में सॉर्ट करता है। आइए पहले एक टेबल बनाते हैं: mysql> CREATE TABLE DemoTable (

  1. - MySQL में WHERE IN के साथ NULL मान कैसे संभालें?

    सिंटैक्स select yourColumnName1, yourColumnName2 from yourTableName where yourValue in(yourColumnName1, yourColumnName2) or yourColumnName1 is NULL; उदाहरण insert into demo60(first_name,last_name) values(John,Smith), (John,Doe), (null,Brown), (David,Miller), (David,Smith), (Chris,Brown); क्वेरी