SELECT DISTINCT order_number FROM orders;如果我们要检索出相同订单号但是收货人姓名不同的情况,可以使用如下语句:
SELECT DISTINCT order_number, recipient_name FROM orders;上述语句会检索出所有不同的订单号和对应的收货人姓名,但是并没有筛选重复的订单号。接下来我们将介绍如何使用GROUP BY语句来实现这个功能。使用GROUP BYGROUP BY语句用来分组检索一张表中的数据。比如将一个订单表按照订单号分组,然后检索出每个分组中的收货人姓名:
SELECT order_number, recipient_name FROM orders GROUP BY order_number;上述语句会将订单表按照订单号分组,然后检索出每个分组中的第一条记录的收货人姓名。如果我们想要检索出相同订单号但是收货人姓名不同的情况,可以使用如下语句:
SELECT order_number, recipient_name FROM orders GROUP BY order_number, recipient_name HAVING COUNT(*) >1;上述语句会将订单表按照订单号和收货人姓名分组,然后筛选出分组中有超过一条记录的分组,并将这些记录返回。这样我们就可以获得所有相同订单号但是收货人姓名不同的情况了。总结在MySQL中,使用SELECT DISTINCT和GROUP BY语句可以检索出不同列重复数据的情况。如果需要检索出相同订单号但是收货人姓名不同的情况,我们可以使用GROUP BY语句并结合HAVING子句进行筛选。