我需要使用mySQL获取ID周围的ID。
示例:
表中的ID:
2, 4, 5, 9, 11, 15, 19, 22, 25
例如,我需要知道ID 9周围的5个ID。 查询应该返回:
4, 5, 9, 11, 15
谢谢!
答案 0 :(得分:17)
可能的解决方案是
SQL声明
SELECT ABS(ID - 9), *
FROM MyTable
ORDER BY
ABS(ID - 9)
LIMIT 5
修改 (thx到ypercube指出此解决方案中可能存在的缺陷)
如果意图是从左边获得2个id并从右边获得两个id,则可以按如下方式调整语句
SELECT * FROM MyTable WHERE ID <= 9 ORDER BY ID DESC LIMIT 3
UNION ALL
SELECT * FROM MyTable WHERE ID > 9 ORDER BY ID ASC LIMIT 2