选择最近的不同记录
您的查询旨在从表中检索 otheridentifier 列中的值不同的三个最新记录。然而,当前使用 GROUP BY 和 LIMIT 的方法会产生意想不到的结果。
让我们检查一下这个问题。 GROUP BY 操作将具有相同 otheridentifier 的行组合在一起。由于排序发生在分组之后,因此不一定会选择每个组的最新记录。
使用子查询的解决方案
要解决此问题,可以使用子查询来识别每个不同的其他标识符的最新记录。然后在主查询中使用此信息来选择所需的记录。
以下查询实现此目的:
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
解释:
使用这种方法,查询将返回预期的结果:ids 5、4和2,代表最近的三个具有不同 otheridentifier 值的记录。
以上是如何从表中选择最近的 3 条不同记录?的详细内容。更多信息请关注PHP中文网其他相关文章!