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

MySQL查询:获取符合条件的限定结果集最后一条记录的Jp_n与Date

获取FF_LOG表指定筛选条件下排序后前5条中的最后一条记录

你需要的是从符合条件的记录中先取按Jp_n排序的前5条,再获取其中最后一条的Jp_n和Date字段值,以下是不同数据库环境下的实现方案:

通用子查询方案(适配多数数据库)

先通过子查询筛选出符合条件的前5条记录,再对这5条记录倒序排序后取第一条,就能得到原排序下的第5条:

SELECT Jp_n, `Date`
FROM (
    -- 先筛选符合条件的记录并按Jp_n排序,取前5条
    SELECT Jp_n, `Date`
    FROM FF_LOG
    WHERE USER_id = 1 AND RW >= 2 AND incompl = 1
    ORDER BY Jp_n
    LIMIT 5
) AS filtered_top5
-- 对前5条倒序,取第一条即为原排序的最后一条
ORDER BY Jp_n DESC
LIMIT 1;

按偏移量直接获取(更高效)

如果数据库支持偏移量语法,可以直接跳过前4条,取第5条,省去子查询的开销:

MySQL/MariaDB

SELECT Jp_n, `Date`
FROM FF_LOG
WHERE USER_id = 1 AND RW >= 2 AND incompl = 1
ORDER BY Jp_n
-- LIMIT 偏移量, 条数:偏移4条后取1条,即第5条
LIMIT 4, 1;

PostgreSQL

SELECT Jp_n, "Date"
FROM FF_LOG
WHERE USER_id = 1 AND RW >= 2 AND incompl = 1
ORDER BY Jp_n
-- 跳过前4条,取1条
OFFSET 4
LIMIT 1;

SQL Server

SELECT Jp_n, [Date]
FROM FF_LOG
WHERE USER_id = 1 AND RW >= 2 AND incompl = 1
ORDER BY Jp_n
-- 偏移4行后取1行
OFFSET 4 ROWS FETCH NEXT 1 ROW ONLY;

注意事项

  • Date是SQL保留字,不同数据库需要用对应符号包裹:MySQL用反引号`,PostgreSQL用双引号",SQL Server用方括号[]。
  • 若需要按Jp_n降序排序,只需在ORDER BY Jp_n后添加DESC即可。

内容的提问来源于stack exchange,提问作者Steve Dawgbone Kel

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 10:16:08