例子:
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 条记录......或者我应该不打扰
谢谢
例子:
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 条记录......或者我应该不打扰
谢谢
如果您的记录按 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)
请在此处查看小提琴。
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);