我需要使用 mySQL 获取 ID 周围的 ID。
Example:
表中ID:
2, 4, 5, 9, 11, 15, 19, 22, 25
例如,我需要知道 ID 9 周围的 5 个 ID。
查询应返回:
4, 5, 9, 11, 15
Thanks!
一个可能的解决方案是
- 计算每个 id 减去您的 ID 的绝对值。
- 对结果进行排序并将结果集限制为 5 条记录。
SQL语句
SELECT ABS(ID - 9), *
FROM MyTable
ORDER BY
ABS(ID - 9)
LIMIT 5
Edit (感谢 ypercube 指出此解决方案中可能存在的缺陷)
如果目的是从左边获取2个id,从右边获取2个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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)