我正在尝试制作一个不保存一致 ID 记录的图像数据库。例如,它可能是 1、2、6、7、12,但如您所见,它只有 5 行。 在表中我有 fileid 和文件名。我创建了一个 PHP 脚本来在我提供文件 ID 时向我显示图像。但是如果我给它不存在的 ID 5,我会得到一个错误。这很好,因为我想要一个错误,但不适合使用前进和后退按钮浏览这些图像的用户。前进和后退按钮需要检索给定 ID 之后的真实文件 ID。希望这是有道理的。
这就是我想象中的代码的样子:
SELECT offset( WHERE fileid=4 )
这会给我 fileid 等于 4 的行的偏移量。我认为这很容易理解。我需要这个的原因是为了创建前进和后退按钮。所以我计划在偏移量中加 1 或减 1,从而得到新 ID 和新文件名。这样当用户浏览时它会自动跳过无效的 ID 值,但在提供错误 ID 时会报错。
最佳答案
上升:
SELECT * FROM table WHERE id > 'your_current_id' ORDER BY id LIMIT 1;
往下走:
SELECT * FROM table WHERE id < 'your_current_id' ORDER BY id DESC LIMIT 1;
ps:LIMIT最好设为2,这样在只返回一条记录的时候可以看到是在数据库的第一条记录还是最后一条记录。
关于php - 如何获取 MySQL 中特定行的偏移量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9051578/