php - 如何获取 MySQL 中特定行的偏移量?

标签 php mysql where offset

我正在尝试制作一个不保存一致 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/

相关文章:

PHP 和 MYSQL : When i edit and update my database only the very first column will update

sql - SQL 'clever enough' 是在一个简单的地方优化掉一个 NULL 检查吗?

php - 如何让用户从输入字段下方回显的值列表中选择单个值

php - 当我在 php 代码中运行具有特定值的查询时,它不返回任何行

MySQL 删除约束语法错误

android - 如何在 Android 应用程序中验证用于注册的电子邮件地址

MySQL:如何索引 "OR"子句

c# - 你可以使用 "where"在 c# 中要求属性吗?

php - SQL 从表中获取不同的日期值

php - 使用 PHP 和 MySQL 登录无效