考虑一个包含具有相同 ID (1) 但登录时间戳不同的三行的表。目标是仅检索其中的最新行。
一种方法涉及使用聚合函数和分组。通过利用 MAX() 函数查找每个 ID 的最大登录时间戳,您可以有效地识别最新行。按 ID 列对结果进行分组,以获得每个唯一 ID 的最大登录时间戳。
SELECT id, MAX(signin) AS most_recent_signin FROM tbl GROUP BY id
要获取整个对应记录,请在原始表和返回最大登录的子查询之间执行 INNER JOIN每个 ID 的时间戳。在 ID 列上链接两个表,并根据最大登录时间戳进行筛选。这将生成指定 ID 的最新行。
例如,要检索 ID=1 的最新行:
SELECT tbl.id, signin, signout FROM tbl INNER JOIN ( SELECT id, MAX(signin) AS maxsign FROM tbl GROUP BY id ) ms ON tbl.id = ms.id AND signin = maxsign WHERE tbl.id=1
以上是如何检索表中特定 ID 的最新行? 或 如何从数据库表中仅选择具有给定 ID 的最新行?的详细内容。更多信息请关注PHP中文网其他相关文章!