傳回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中文網其他相關文章!