Maison > Article > base de données > Comment la clause MySQL GROUP BY se comporte-t-elle comme une clause DISTINCT ?
Lorsque nous utilisons la clause GROUP BY dans l'instruction SELECT sans utiliser la fonction d'agrégation, elle se comporte comme la clause DISTINCT. Par exemple, nous avons le tableau suivant -
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)
En utilisant la clause DISTINCT sur la colonne "Lname", MySQL renvoie l'ensemble de résultats suivant.
mysql> select Distinct LNAME from testing; +---------+ | LNAME | +---------+ | Kumar | | Bhalla | | NULL | | Khurana | | Kohli | +---------+ 5 rows in set (0.00 sec)
Maintenant, en utilisant la clause GROUP BY comme indiqué ci-dessous, nous pouvons obtenir le même ensemble de résultats que celui obtenu en utilisant DISTINCT -
mysql> Select LNAME from testing GROUP BY Lname; +---------+ | LNAME | +---------+ | NULL | | Bhalla | | Khurana | | Kohli | | Kumar | +---------+ 5 rows in set (0.04 sec)
Nous pouvons observer qu'il y a une différence entre l'ensemble de résultats renvoyé par MySQL en utilisant GROUP et une requête MySQL l'utilisation de la clause BY renvoie un ensemble de résultats triés, tandis qu'une requête MySQL utilisant la clause DISTINCT renvoie un ensemble de résultats non triés. p>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!