首页 >数据库 >mysql教程 >如何选择特定列中具有唯一值的最近 3 条记录?

如何选择特定列中具有唯一值的最近 3 条记录?

Susan Sarandon
Susan Sarandon原创
2024-12-02 12:06:18644浏览

How to Select the 3 Most Recent Records with Unique Values in a Specific Column?

如何为指定列选择具有不同值的 3 个最新记录

为给定表选择最新记录是数据库中的常见操作。但是,当您想要确保特定列的值不同并消除重复项时,它可能会变得更加复杂。此任务需要更细致的方法。

在给定场景中,用户尝试从表中选择三个最新记录,其中 otheridentifier 列中的值不同。最初尝试使用 SELECT * FROM table GROUP BY (otheridentifier) ORDER BY time DESC LIMIT 3 未能产生所需的结果,因为分组优先于 SQL 语句中的排序。

为了克服此限制,需要更详细的查询:

SELECT *
FROM `table`
WHERE `id` = (
    SELECT `id`
    FROM `table` AS `alt`
    WHERE `alt`.`otheridentifier` = `table`.`otheridentifier`
    ORDER BY `time` DESC
    LIMIT 1
)
ORDER BY `time` DESC
LIMIT 3

此查询通过执行以下操作来运行步骤:

  1. 它使用子查询来获取每个不同的 otheridentifier 值的最新记录的 id。
  2. 然后主查询将选择限制为具有相应 id 值的记录.
  3. 最后,结果按照时间降序排列,仅限前三名

使用这种方法,用户可以有效地选择 otheridentifier 列具有不同值的三个最新记录,从而产生所需的结果。

以上是如何选择特定列中具有唯一值的最近 3 条记录?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn