1

在Android中,我需要知道如何在mysql中检索当前索引的前5条记录和最后5条记录?

我只知道如何检索当前索引的前 5 条记录或最后 5 条记录

获取当前索引的前 5 条记录

Select * from myTable Where myid < 10 order by myid DESC Limit 10

获取当前索引的最后 5 条记录

Select * from myTable Where myid > 10 order by myid ASC Limit 10

但我不知道如何结合这两个陈述。

4

2 回答 2

1

要组合具有相同列数的两个查询,请使用UNION

Select * from (Select * from myTable Where myid < 10 order by myid DESC Limit 10)
Union All
Select * from (Select * from myTable Where myid > 10 order by myid ASC Limit 10)

(double-Select是必要的,因为 SQLite 不支持Limit. 的直接子查询Union。)

如果您希望对整体结果进行排序,只需Order by mid在末尾附加即可。

于 2012-10-12T06:57:58.767 回答
1

尝试这个:

SELECT *
FROM   myTable 
WHERE  myid BETWEEN currentIndex-5 AND currentIndex+5 AND
       myid <> currentIndex

编辑:

我假设您的mid列包含按顺序排列的数据,例如 1、2、3、4、n。

于 2012-10-12T04:21:50.940 回答