MySQL 获取给定限制、排序依据和位置 ID 的偏移量

发布于 2025-01-02 19:48:46 字数 262 浏览 1 评论 0原文

我有一个每页显示 10 行的表格。现在,给定一个项目的 ID,我如何获取该项目所在的“页面”?

换句话说,我正在寻找给定记录 ID 的偏移量(10 的倍数)。

SELECT * FROM items
WHERE category = "category"
LIMIT ?, 10      <----- TRYING TO FIGURE OUT HOW TO GET ? OFFSET GIVEN ID
ORDER BY id DESC

I have a table that displays 10 rows per page. Now, given an item's ID, how can I get the "page" that the item is on?

In other words, I'm looking for the offset (multiple of 10) given an ID of a record.

SELECT * FROM items
WHERE category = "category"
LIMIT ?, 10      <----- TRYING TO FIGURE OUT HOW TO GET ? OFFSET GIVEN ID
ORDER BY id DESC

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

难忘№最初的完美 2025-01-09 19:48:46

试试这个:

SET @rownum = 0; 
Select sub.*, 10 * Floor(sub.rownum / 10) as pagenum
from
(
   Select *,  (@rownum:=@rownum+1) as rownum
   from items order by id desc
) sub
where sub.ID = givenID;

Try this:

SET @rownum = 0; 
Select sub.*, 10 * Floor(sub.rownum / 10) as pagenum
from
(
   Select *,  (@rownum:=@rownum+1) as rownum
   from items order by id desc
) sub
where sub.ID = givenID;
栖迟 2025-01-09 19:48:46

这应该可以做到;

SELECT 10*FLOOR(COUNT(id)/10) FROM items where id < YOUR_ID

This should do it;

SELECT 10*FLOOR(COUNT(id)/10) FROM items where id < YOUR_ID
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文