MySQL查询最近三条不同列值的记录


<!–

–>

MySQL查询最近三条不同列值的记录

在MySQL数据库中,有时我们需要查询最近的几条记录,并且这些记录的某一列的值必须是不同的。这里介绍一个简单的方法来完成这个任务。

假设我们有一个名为“orders”的表,它包含以下列:id、customer_id、order_date、product。我们要查询最近的三条订单,其中每个不同的顾客都只能出现一次,可以按日期排序。我们可以使用以下查询:

SELECT DISTINCT customer_id, order_date, product
FROM orders
GROUP BY customer_id
ORDER BY order_date DESC
LIMIT 3;

在上面的查询中,首先我们选择了不同的顾客ID、订单日期和产品。然后,我们按客户ID分组,并按订单日期进行降序排序。最后,我们使用LIMIT函数限制结果集返回前三条记录。

(adsbygoogle = window.adsbygoogle || []).push({});

让我们来看一个更具体的例子:

假设我们有以下订单表:

ID Customer ID Order Date Product
1 1 2021-01-01 iPhone
2 2 2021-01-02 iPad
3 1 2021-01-03 MacBook
4 3 2021-01-04 iMac
5 2 2021-01-05 Apple Watch
6 4 2021-01-06 AirPods

当我们运行以上查询时,我们将得到以下结果:

customer_id order_date product
4 2021-01-06 AirPods
2 2021-01-05 Apple Watch
1 2021-01-03 MacBook

作为结果,我们得到了最近的3个订单,其中每个不同的客户只出现一次,并且这些订单按日期排序。在上面的表格中,我们可以看到,第一条记录的客户ID为4,这是因为在该表中,它是最近的唯一客户ID。

阅读更多:

总结

通过上述示例,我们可以看到如何使用DISTINCT关键字、GROUP BY和LIMIT函数来查询最近的订单,并只保留其中某列的不同值。这种查询在数据分析和报告中经常使用,能够帮助我们快速处理数据并得出有用的结论。

(adsbygoogle = window.adsbygoogle || []).push({});