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

如何获取name为abc且timestamp最大的id值?

获取指定name对应最大timestamp的ID

给定数据表结构及数据如下:

id, name, timestamp
xx,abc,01-01-2022
x1,abc,01-02-2022
x2,abc,01-03-2022
x3,aby,01-01-2022
x4,aby,01-02-2022
x5,aby,01-03-2022

要获取name为abc且timestamp最大的id(预期结果为x2),可根据使用的数据库选择以下方法:

方法一:转日期排序后取第一条(推荐,避免日期比较错误)

由于timestamp是字符串格式,直接按字符串排序可能出现跨年份的逻辑错误,建议先转换为日期类型再排序取值。

MySQL

SELECT id
FROM your_table_name
WHERE name = 'abc'
ORDER BY STR_TO_DATE(timestamp, '%d-%m-%Y') DESC
LIMIT 1;

PostgreSQL

SELECT id
FROM your_table_name
WHERE name = 'abc'
ORDER BY TO_DATE(timestamp, 'DD-MM-YYYY') DESC
LIMIT 1;

SQL Server

SELECT TOP 1 id
FROM your_table_name
WHERE name = 'abc'
ORDER BY CONVERT(DATE, timestamp, 105) DESC;

方法二:子查询匹配最大timestamp

先查询abc对应的最大timestamp,再关联获取对应id:

SELECT id
FROM your_table_name
WHERE name = 'abc'
AND timestamp = (
    SELECT MAX(timestamp)
    FROM your_table_name
    WHERE name = 'abc'
);

注意:此方法仅适用于timestamp字符串的比较逻辑与日期大小完全一致的场景,若存在跨年份数据,优先使用方法一。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 08:55:18