我需要使用mySQL获取ID周围的ID.
例:
表中的ID:
2, 4, 5, 9, 11, 15, 19, 22, 25
Run Code Online (Sandbox Code Playgroud)
例如,我需要知道ID 9周围的5个ID.查询应该返回:
4, 5, 9, 11, 15
Run Code Online (Sandbox Code Playgroud)
谢谢!
Lie*_*ers 17
一个可能的解决方案是
SQL语句
SELECT ABS(ID - 9), *
FROM MyTable
ORDER BY
ABS(ID - 9)
LIMIT 5
Run Code Online (Sandbox Code Playgroud)
编辑 (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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7202 次 |
| 最近记录: |