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

MySQL में NOT NULL वैल्यू पहले और NULL वैल्यू बाद में कैसे दिखाएं?

ORDER BY में IS NULL से NULL सॉर्टिंग कंट्रोल करना

MySQL में किसी कॉलम के NOT NULL वैल्यू पहले और NULL वैल्यू बाद में दिखाने के लिए ORDER BY (Column IS NULL) एक्सप्रेशन का उपयोग करें।

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

CREATE TABLE DemoTable1357 (
    StudentName VARCHAR(40),
    StudentCountryName VARCHAR(30)
);

INSERT INTO DemoTable1357 VALUES('Chris', 'US');
INSERT INTO DemoTable1357 VALUES('David', NULL);
INSERT INTO DemoTable1357 VALUES('David', 'AUS');
INSERT INTO DemoTable1357 VALUES('Carol', NULL);
INSERT INTO DemoTable1357 VALUES('Mike', 'UK');

मौजूदा डेटा

+-------------+--------------------+
| StudentName | StudentCountryName |
+-------------+--------------------+
| Chris       | US                 |
| David       | NULL               |
| David       | AUS                |
| Carol       | NULL               |
| Mike        | UK                 |
+-------------+--------------------+

क्वेरी: NOT NULL पहले, फिर NULL

SELECT * FROM DemoTable1357 
ORDER BY (StudentCountryName IS NULL), StudentName;

आउटपुट

+-------------+--------------------+
| StudentName | StudentCountryName |
+-------------+--------------------+
| Chris       | US                 |
| David       | AUS                |
| Mike        | UK                 |
| Carol       | NULL               |
| David       | NULL               |
+-------------+--------------------+

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

  • StudentCountryName IS NULL बूलियन एक्सप्रेशन: TRUE (1) या FALSE (0)
  • FALSE (0) = NOT NULL → पहले सॉर्ट होता है
  • TRUE (1) = NULL → बाद में सॉर्ट होता है
  • दूसरा क्रम StudentName से अल्फाबेटिकल

विपरीत क्रम (NULL पहले)

ORDER BY (StudentCountryName IS NULL) DESC, StudentName;

COALESCE के साथ विकल्प

ORDER BY COALESCE(StudentCountryName, 'ZZZ'), StudentName;

NULL को 'ZZZ' से बदलकर अंत में भेजता है (स्ट्रिंग तुलना में Z अंत में आता है)।

एकाधिक कॉलम पर सॉर्टिंग

ORDER BY 
    (StudentCountryName IS NULL),
    (StudentCity IS NULL),
    StudentName;

डिफॉल्ट व्यवहार

MySQL में डिफॉल्ट रूप से ORDER BY Column ASC में NULL पहले आते हैं। DESC में अंत में।

मानक SQL (NULLS FIRST/LAST) - MySQL 8.0.2+

ORDER BY StudentCountryName ASC NULLS LAST

यह अधिक पढ़ने योग्य और पोर्टेबल है।

  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 में != NULL और IS NOT NULL का अंतर

    NULL तुलना: != NULL बनाम IS NOT NULL MySQL में किसी मान की तुलना !=NULL से करने पर परिणाम NULL होता है, इसलिए !=NULL अर्थहीन है। सही तरीका IS NOT NULL है। टेबल बनाएं और डेटा डालें: mysql> create table DemoTable1970 ( Value int ); Query OK, 0 rows affected (0.00 sec) mysql> insert into DemoTabl

  1. - MySQL में कॉलम मान के पहले अक्षर को प्राप्त करके दूसरे कॉलम में डालें

    समाधान LEFT() फंक्शन का उपयोग करके पहले अक्षर को निकालें और UPDATE से दूसरे कॉलम में स्टोर करें। उदाहरण टेबल बनाएं: INSERT INTO DemoTable2036 (Title) VALUES (Chris), (John), (Adam); अपडेट क्वेरी UPDATE DemoTable2036 SET FirstLetter = LEFT(Title, 1); परिणाम +-------------+-------+ | FirstLetter