示例:
ID catID
1 3
2 2
3 3
4 1
5 3
6 3
7 3
8 1
9 3
select * from tbl where ID=5
我如何选择记录1,3,6,7?这是需要时间的东西吗,我的意思是查询/子查询?
目前我选择整个集合然后使用服务器脚本排序,这就是为什么我要问是否可以用mysql选择5条记录......或者我不应该打扰
感谢
答案 0 :(得分:1)
如果您的记录按ID排序,则可以使用如下查询:
(SELECT *
FROM yourtable
WHERE ID<5 AND catID=(SELECT catID FROM yourtable WHERE ID=5)
ORDER BY ID DESC
LIMIT 2)
UNION ALL
(SELECT *
FROM yourtable
WHERE ID>5 AND catID=(SELECT catID FROM yourtable WHERE ID=5)
ORDER BY ID
LIMIT 2)
请参阅小提琴here。
答案 1 :(得分:0)
select * from tbl where catID = 3;
这是你问的问题的答案吗?
select *
from tbl
where (0 < (id - x) and (id - x) <= 2)
or (0 < (x - id) and (x - id) <= 2);