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

MySQL में GROUP BY को NULL मानों को एक पंक्ति में समेटने से रोकना

IFNULL() से NULL को अलग समूह में रखना

डिफ़ॉल्ट रूप से GROUP BY सभी NULL को एक समूह में रखता है। IFNULL(col, unique_val) से प्रत्येक NULL को अलग समूह बना सकते हैं।

तालिका और डेटा

mysql> CREATE TABLE DemoTable1511 (
    -> Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> FirstName VARCHAR(20)
    -> );

mysql> INSERT INTO DemoTable1511(FirstName) VALUES
    -> ('John'), ('Robert'), ('Mike'), ('Robert'), (NULL), (NULL), ('Mike');

क्वेरी: NULL को अलग-अलग पंक्तियों में रखना

mysql> SELECT MIN(Id) AS Id, FirstName
    -> FROM DemoTable1511
    -> GROUP BY FirstName, IFNULL(FirstName, Id)
    -> ORDER BY Id;

परिणाम

+------+-----------+
| Id   | FirstName |
+------+-----------+
| 1    | John      |
| 2    | Robert    |
| 3    | Mike      |
| 5    | NULL      |
| 6    | NULL      |
+------+-----------+

व्याख्या:

  • IFNULL(FirstName, Id): NULL होने पर Id उपयोग करता है (प्रत्येक पंक्ति के लिए अद्वितीय)
  • GROUP BY FirstName, IFNULL(...): गैर-NULL नाम से समूह, NULL के लिए Id से समूह
  • MIN(Id): प्रत्येक समूह की पहली पंक्ति का Id

विकल्प: COALESCE(FirstName, CONCAT('NULL_', Id)) भी काम करता है।

  1. - MySQL INSERT में UNIQUE KEY का उपयोग करके डुप्लिकेट पंक्तियों को रोकें

    टेबल निर्माण के दौरान कॉलम पर UNIQUE KEY प्रतिबंध परिभाषित करें और डुप्लिकेट को चुपचाप छोड़ने के लिए INSERT IGNORE का उपयोग करें। UNIQUE KEY के साथ टेबल बनाना CREATE TABLE DemoTable ( Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, FirstName VARCHAR(30), UNIQUE KEY(FirstName) ); Query OK,

  1. - MySQL में अलग-अलग टेबल से NOT NULL मानों की गिनती एक क्वेरी में

    सबक्वेरी से कई टेबल की नॉन-NULL गिनती COUNT(column) NULL मानों को स्वचालित रूप से बाहर करता है। सबक्वेरी के साथ कई टेबल की गिनती एक साथ प्राप्त करें। पहली टेबल INSERT INTO DemoTable1 VALUES(1), (NULL), (2), (3); दूसरी टेबल INSERT INTO DemoTable2 VALUES(10), (NULL), (NULL); एक क्वेरी में दोनों

  1. - MySQL में IS NULL से टेबल की एकल पंक्ति में किसी NULL मान की जांच कैसे करें?

    IS NULL ऑपरेटर WHERE col1 IS NULL OR col2 IS NULL किसी भी कॉलम NULL होने पर पंक्ति चुनता है। उदाहरण insert into demo86 values(null,null), (null,John), (David,Mike), (Sam,null); क्वेरी और परिणाम select * from demo86 where value1 is null or value2 is null; +--------+--------+ | value1 | value2 |