返回 MySQL 中每个“分组依据”的“最后”行
高效检索 MySQL 中每个分组集的最后一行是一项共同的任务。之前的方法提出了在 WHERE 子句中使用子查询的查询:
但是,替代解决方案可能会提供改进的性能:
此查询利用 JOIN 操作显式地将原始表 ('foo') 与包含每个唯一用户 ID 的最大 ID 值的派生表连接起来。 ON 子句确保仅连接 ID 和用户 ID 匹配的行。
为了进一步优化查询,建议在 'uid' 列上创建索引,因为它用于分组和连接。利用 EXPLAIN 可以深入了解查询的执行计划并识别潜在的性能瓶颈。
另一种方法,使用 LEFT JOIN 运算符,也可以获得所需的结果:
在此查询中,LEFT JOIN 执行外连接,根据“uid”和“id”条件匹配“foo”中的行。 WHERE 子句确保仅选择同一组中没有后续行的行,从而有效地返回每个用户 ID 的最后一行。
通过考虑替代方法并通过索引和 EXPLAIN 分析优化查询,可以在 MySQL 中高效检索每个“group by”的最后一行。
以上是如何高效检索MySQL中每组的最后一行?的详细内容。更多信息请关注PHP中文网其他相关文章!