7
我需要使用mySQL获取ID附近的ID。使用mysql选择id前后的行
实施例:表中
标识:
2, 4, 5, 9, 11, 15, 19, 22, 25
我需要知道周围的ID 9 5点的ID,例如。 查询应该会返回:
4, 5, 9, 11, 15
谢谢!
我需要使用mySQL获取ID附近的ID。使用mysql选择id前后的行
实施例:表中
标识:
2, 4, 5, 9, 11, 15, 19, 22, 25
我需要知道周围的ID 9 5点的ID,例如。 查询应该会返回:
4, 5, 9, 11, 15
谢谢!
一个可能的解决方案是
SQL语句
SELECT ABS(ID - 9), *
FROM MyTable
ORDER BY
ABS(ID - 9)
LIMIT 5
编辑(感谢ypercube的指出了这种解决方案可能的缺陷)
如果目的是让从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
simpool和bootifol +1 – 2012-04-11 07:29:45
@NiftyDude - Foonny :) – 2012-04-11 07:32:58
当然你的意思是'ORDER BY ABS(id - @id)'其中'@ id'是特定的id(例子中的'9') – 2012-04-11 07:38:41