Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何通过createdAt获取mysql订单中的下一项_Mysql_Sql_Sql Order By - Fatal编程技术网

如何通过createdAt获取mysql订单中的下一项

如何通过createdAt获取mysql订单中的下一项,mysql,sql,sql-order-by,Mysql,Sql,Sql Order By,我的前端应用程序可以通过createdAt列出我的物品订单(当然可以通过调用API): 例如,输出为: id: myIdAAA id: myIdEEE id: myIdPPP id: myIdRRR 每个项目的Id都是UUID(示例中只有myId*) 我可以通过url/item/detail/myIdPPP打开项目的详细信息,在这个详细信息上,我可以转到下一个项目 问题是,我不知道如何创建SQL查询来选择下一项,如下所示: SELECT * FROM items AFTER myIdEEE O

我的前端应用程序可以通过
createdAt
列出我的物品订单(当然可以通过调用API):

例如,输出为:

id: myIdAAA
id: myIdEEE
id: myIdPPP
id: myIdRRR
每个项目的Id都是UUID(示例中只有
myId*

我可以通过url
/item/detail/myIdPPP
打开项目的详细信息,在这个详细信息上,我可以
转到下一个
项目

问题是,我不知道如何创建SQL查询来选择下一项,如下所示:

SELECT * FROM items AFTER myIdEEE ORDER BY createdAt
应返回
myIdPPP

SELECT * FROM items AFTER myIdPPP ORDER BY createdAt
应返回
myidrr


这是可能的,如何实现?

如果我理解正确,您可以使用:

SELECT i.*
FROM items i
WHERE i.createdAt > (SELECT i2.createdAt FROM items i2 WHERE i2.id = ?)
ORDER BY i.createdAt DESC
LIMIT 1;
是感兴趣项的参数占位符。这将按时间顺序返回表中的下一次——假设没有重复项


注意:如果你真的想要一个唯一的值来获取“下一个”项目,那么使用一个自动递增的列。这保证是唯一的,即使您同时插入多个项目。

如果我理解正确,您可以使用:

SELECT i.*
FROM items i
WHERE i.createdAt > (SELECT i2.createdAt FROM items i2 WHERE i2.id = ?)
ORDER BY i.createdAt DESC
LIMIT 1;
是感兴趣项的参数占位符。这将按时间顺序返回表中的下一次——假设没有重复项


注意:如果你真的想要一个唯一的值来获取“下一个”项目,那么使用一个自动递增的列。这保证是唯一的,即使您同时插入多个项目。

看起来不错!是的,没错!非常感谢。看起来不错!是的,没错!非常感谢。