You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从指定结构的数据表中获取最新记录?

如何检索数据表中的最新记录?

嘿,针对你的需求,分两种常见场景来给你方案,你可以根据实际需要选择:

场景1:获取整个表中最新的单条记录

如果只是想要全表时间最晚的那一条数据,直接对ctime倒序排序后取第一条就行——你的ctime是YYYYMMDD格式的字符串,这种格式的字符串排序逻辑和日期排序完全一致,不用额外转换:

SELECT *
FROM your_table_name -- 记得替换成你的实际表名
ORDER BY ctime DESC
LIMIT 1;

场景2:按用户分组,获取每个用户的最新记录

如果需要每个user_id对应的最新一条评论,用窗口函数是最清晰的方案,这里用ROW_NUMBER()给每个用户的记录按时间排序标记序号,取序号为1的就是该用户的最新记录:

SELECT id, user_id, ctime, comment
FROM (
    SELECT *,
           -- 按user_id分组,组内按ctime倒序排,给每条记录标序号
           ROW_NUMBER() OVER (PARTITION BY user_id ORDER BY ctime DESC) AS rn
    FROM your_table_name -- 替换成实际表名
) t
WHERE rn = 1;

补充说明

如果存在同一个用户在同一天有多条记录的情况,ROW_NUMBER()会随机选中其中一条;要是你想保留所有同时间的最新记录,可以把ROW_NUMBER()换成RANK()或者DENSE_RANK()。

内容的提问来源于stack exchange,提问作者KaiserKatze

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 03:57:43