在单个查询中查找mysql表中某个条目左侧和右侧的条目

时间:2013-04-22 05:20:32

标签: php mysql sql cakephp cakephp-1.3

假设我在this table这样的数据库中有一个表。假设我想获取主键等于5(或任何其他主键)的条目左侧和右侧的条目。所以在我们的例子中,我想得到主键分别等于4和6的条目。什么是SQL查询会给我这样的结果?你们可以将SQL查询翻译成find('all') CakePHP查询吗?

谢谢

注意:ID不一定是连续的,这意味着它们不一定遵循1,2,3,4,5,6,7,8序列。我可以有类似1,5,13,​​44,66,123等的东西

3 个答案:

答案 0 :(得分:3)

尝试像这样的联盟

 (SELECT * FROM employee WHERE id < 5 order by id DESC LIMIT 1)
 UNION
 (SELECT * FROM employee WHERE id >5  LIMIT 1)

答案 1 :(得分:1)

PHP

$id = 5;
SELECT * FROM Employee where id = $id-1 OR id = $id+1;

的MySQL

SET @id = 5;
SELECT * FROM Employee where id = @id-1 OR id = @id+1;

答案 2 :(得分:0)

结帐find('neighbors')。它返回您指定的记录之前和之后的记录,并且您的ID在序列中可以有“洞”。