Mysql 如何查找下一行、上一行或下一行

Mysql 如何查找下一行、上一行或下一行,mysql,Mysql,我有一张有顾客详细资料的桌子 id,title,first_name,surname 当我使用 SELECT * FROM customers ORDER BY surname,first_name,title; 如果id类型为整数且nextID=currentID+1,如何基于id获取上一行或下一行而不读取整个表。。因此,您可以将查询编写为: SELECT * FROM customers WHERE id = (currentID + 1) ORDER BY surname,fir

我有一张有顾客详细资料的桌子

id,title,first_name,surname
当我使用

SELECT * FROM customers ORDER BY surname,first_name,title;

如果id类型为整数且
nextID=currentID+1
,如何基于id获取上一行或下一行而不读取整个表。

。因此,您可以将查询编写为:

SELECT * 
FROM customers 
WHERE id = (currentID + 1) 
ORDER BY surname,first_name,title;
下一步:

以前的:

SELECT * FROM customers WHERE id < XYZ ORDER BY id DESC LIMIT 1
从id

其中XYZ是您的编号

如果执行此查询,您已经获得了整个表。您的意思是只返回一行吗?您是否正在尝试查找将插入新条目的序列中的下一个id。如果是这样,请从客户中选择max(id)+1,这可能是您想要的?这将不符合order by Clause指定的顺序这将不符合order by Clause指定的顺序这不起作用,因为id不符合升序。现在我正在读所有的行,然后加或减以找到正确的一行。
SELECT * FROM customers WHERE id < XYZ ORDER BY id DESC LIMIT 1