Ինչպե՞ս կանխել MySQL GROUP BY-ի NULL արժեքները մեկ տողի մեջ:
Այսպես, դուք կարող եք օգտագործել IFNULL() ORDER BY կետի հետ միասին: Եկեք նախ ստեղծենք սեղանի աղյուսակ.
mysql> create table DemoTable1511
-> (
-> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> FirstName varchar(20)
-> );
Query OK, 0 rows affected (1.97 sec)
Տեղադրեք որոշ գրառումներ աղյուսակում՝ օգտագործելով insert հրամանը.
mysql> insert into DemoTable1511(FirstName) values('John');
Query OK, 1 row affected (0.20 sec)
mysql> insert into DemoTable1511(FirstName) values('Robert');
Query OK, 1 row affected (0.29 sec)
mysql> insert into DemoTable1511(FirstName) values('Mike');
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable1511(FirstName) values('Robert');
Query OK, 1 row affected (1.08 sec)
mysql> insert into DemoTable1511(FirstName) values(NULL);
Query OK, 1 row affected (0.68 sec)
mysql> insert into DemoTable1511(FirstName) values(NULL);
Query OK, 1 row affected (1.91 sec)
mysql> insert into DemoTable1511(FirstName) values('Mike');
Query OK, 1 row affected (0.51 sec)
Ցուցադրել բոլոր գրառումները աղյուսակից՝ օգտագործելով select հայտարարությունը.
mysql> select * from DemoTable1511;
Սա կստեղծի հետևյալ արդյունքը.
+----+-----------+
| Id | FirstName |
+----+-----------+
| 1 | John |
| 2 | Robert |
| 3 | Mike |
| 4 | Robert |
| 5 | NULL |
| 6 | NULL |
| 7 | Mike |
+----+-----------+
7 rows in set (0.00 sec)
Ահա հարցումը՝ կանխելու MySQL GROUP BY-ի 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 |
+------+-----------+
5 rows in set (0.00 sec)