我需要一个查询来获取某个 ID 之前的单个项目以及该 ID 之后的一个项目。
例如,我有五行,id为1到5,我需要在id 3之前和之后选择id,这样我就得到2和4作为结果。
有没有办法通过单个查询来完成此操作?
编辑:
我忘了告诉大家,也许结果不是 sibling ,而是符合条件的下一个 sibling :
SELECT routeId FROM routes WHERE routeId>::p0:: AND assetKmId<>'0'
所以下一个或上一个同级应该匹配 assetKmId<>'0' (这个 RouteId>::p0::在这种情况下当然无效)
最佳答案
为什么不使用最大值、最小值和并集结果
SELECT min(routeId) FROM routes WHERE routeId>::p0:: AND assetKmId<>'0'
UNION
SELECT max(routeId) FROM routes WHERE routeId<::p0:: AND assetKmId<>'0'
关于MySQL 查询获取同级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1807971/