-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 条记录......或者我应该不打扰

谢谢

4

2 回答 2

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)

在此处查看小提琴。

于 2013-05-20T22:55:40.627 回答
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);
于 2013-05-20T22:39:09.053 回答