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

MySQL中如何从tickets表选取每第5000个ID的记录

获取tickets表中每第5000个ID的记录

嗨,这个需求很明确,我分两种常见场景给你提供解决方案,你可以根据实际情况选择:

场景1:筛选ID为5000倍数的记录(比如ID=5000、10000、15000...)

这种情况直接利用取模运算就能实现,不同数据库的写法大同小异:

MySQL / PostgreSQL

SELECT * FROM tickets WHERE ID % 5000 = 0;

或者用更清晰的MOD函数写法:

SELECT * FROM tickets WHERE MOD(ID, 5000) = 0;

SQL Server

同样支持取模运算符,写法和上面一致:

SELECT * FROM tickets WHERE ID % 5000 = 0;

也可以用内置的MOD函数:

SELECT * FROM tickets WHERE MOD(ID, 5000) = 0;

场景2:按记录顺序每5000条取一条(不管ID是否连续)

如果你的ID不是连续递增的,或者你需要的是第5000条、第10000条记录(而不是ID刚好是5000的倍数),那就要用窗口函数来实现了,适用于支持窗口函数的数据库(MySQL 8.0+、PostgreSQL、SQL Server等):

SELECT * FROM (
    SELECT *, ROW_NUMBER() OVER (ORDER BY ID) AS row_num
    FROM tickets
) AS sub_query
WHERE row_num % 5000 = 0;

这里的ORDER BY ID是按ID排序来确定记录顺序,你也可以换成其他排序字段(比如创建时间created_at),根据你的业务需求调整即可。

需要注意的是,如果你的表数据量很大,建议给ID或者排序字段加索引,这样查询效率会更高哦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 07:39:51