cuốn sách gpt4 ai đã làm

MySQL获取区间记录

In lại Tác giả: Walker 123 更新时间:2023-11-29 04:25:45 25 4
mua khóa gpt4 Nike

是否有任何关于 MySQL 脚本的解决方案来过滤具有特定间隔数的结果。

例如,如果我在数据库中有 100,000 条记录,我只想获取记录编号 1000、2000、3000 等(以 1000 为单位)。

我可以通过获取整个结果(例如 100,000)并使用如下语法在服务器端脚本上执行此操作:

for($i=0, $i <= 100,000, $i = $i+1000) $filterResult[] = $record[$i];

但是,如您所见,这会给系统带来压力,因为需要首先生成 100,000 条记录。

是否有任何可以从数据库脚本完成的解决方案?请注意,根据 where 子句中的某些条件,主键可能不会以 1 - 100,000 开头。

Cảm ơn bạn rất nhiều vì sự giúp đỡ của bạn.

câu trả lời hay nhất

你可以这样做:

SELECT *
FROM tbl
WHERE id % 1000 = 0

但似乎您不想依赖主键值,而是结果集的行排名。

在这种情况下,您可以:

SELECT *
FROM (
SELECT *, @rn:=@rn+1 AS rank
FROM tbl
CROSS JOIN (SELECT @rn:=0) var_init
WHERE column1 = value AND
column2 = value
) a
WHERE a.rank % 1000 = 0

column1 = value AND column2 = value 只是您在查询中执行的任何过滤的占位符。

关于MySQL获取区间记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11998463/

25 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress