如何在多列上使用MySQL的DISTINCT子句?
我们可以在MySQL上的多个列上使用DISTINCT子句。在这种情况下,结果集中行的唯一性取决于所有列的组合。
阅读更多:MySQL 教程
示例
考虑具有10行的下表’testing’−
mysql> select * from testing;
+------+---------+---------+
| id | fname | Lname |
+------+---------+---------+
| 200 | Raman | Kumar |
| 201 | Sahil | Bhalla |
| 202 | Gaurav | NULL |
| 203 | Aarav | NULL |
| 204 | Harshit | Khurana |
| 205 | Rahul | NULL |
| 206 | Piyush | Kohli |
| 207 | Lovkesh | NULL |
| 208 | Gaurav | Kumar |
| 209 | Raman | Kumar |
+------+---------+---------+
10 rows in set (0.00 sec)
如果我们在名为Fname和Lname的两列上应用DISTINCT子句,则会根据两个列的组合获取唯一的行。从下面的查询中可以看出−
mysql> Select DISTINCT FNAME,LNAME from testing2;
+---------+---------+
| FNAME | LNAME |
+---------+---------+
| Raman | Kumar |
| Sahil | Bhalla |
| Gaurav | NULL |
| Aarav | NULL |
| Harshit | Khurana |
| Rahul | NULL |
| Piyush | Kohli |
| Lovkesh | NULL |
| Gaurav | Kumar |
+---------+---------+
9 rows in set (0.00 sec)
MySQL返回9行作为结果集,因为它们具有来自“Fname”和“Lname”列的唯一值组合。