我有一个名为 books 的表,其中包含以下数据:
id | description | section
1 | textbook 1 | 1
2 | textbook 2 | 1
3 | textbook 3 | 1
我使用以下查询来选择 id 2 以及第 1 节中的下一行和上一行:
SELECT id FROM books where id IN
(2,
(SELECT id FROM books WHERE id < 2 LIMIT 1),
(SELECT id FROM books WHERE id > 2 LIMIT 1)
)
AND section = 1
当我添加时section = 1
,查询只返回 id 2,而它应该返回所有 3 个 id,但是当我删除这部分时,它会选择所有 3 个 id。我的方案实际上比这更复杂,但我简化了它来解释情况。那么,我在上面做错了什么?