mysql通过其他任何字段名而不是通过id使用order来获取上一个或下一个记录顺序

Jay*_*ran 1 mysql

我正在显示一个列表。

用户可以编辑任何项目。

我正在显示下一个先前的按钮,单击该按钮可动态获取db的下一个先前的记录。没有页面重新加载。

这与id配合得很好。就像我如何从mysql MySQL下一个/上一个ID(任意排序顺序)中使用php获取下一个和上一个字段ID

目前我正在显示像

从表顺序中按名称升序选择*

对于下一个和上一个我使用了这样的...

select * from table where id > $id order by name asc limit 1
select * from table where id < $id order by name desc limit 1
Run Code Online (Sandbox Code Playgroud)

以上是我在互联网上搜索到的内容。

按照这种顺序,ID的顺序将不一样,所以我无法使用ID来获取我认为的下一个和上一个记录。

我想获得关于任何其他字段的下一个和上一个记录,而不是通过ID。

这样的事情。

从表中选择*,其中id> 5按名称asc或desc限制1排序。

查询内容是什么?

注意

有15000条记录。默认情况下填充一半。其余的一半应该由管理员更新。因此,与其在管理员更新了一条记录后重新加载页面,不如提取一条记录并在屏幕上动态显示,以便他可以继续更新内容。没有任何页面重新加载。他只需单击更新,然后显示下一条记录。他可以选择上一个或下一个按钮在记录之间导航。

Mar*_*ers 5

您需要过滤name的值:

SELECT * FROM `table`
WHERE name < 'Foo'
ORDER by name DESC
LIMIT 1
Run Code Online (Sandbox Code Playgroud)

仅当名称唯一时,这才有效。如果可以重复,则需要平局。例如,您可以使用id列进行抢七。

SELECT * FROM `table`
WHERE name < 'Foo' OR (name = 'Foo' AND id < 42)
ORDER by name DESC, id DESC
LIMIT 1
Run Code Online (Sandbox Code Playgroud)