通过单个语句获取前5个和后5个记录

时间:2014-04-08 06:26:29

标签: sql sqlite

我正在使用python sqlite3。

此声明获得记录5 - 14;

SELECT * FROM something LIMIT 5, 10;

但是我怎么得到,让我们通过一个陈述说出前五个和最后五个记录?

2 个答案:

答案 0 :(得分:8)

您可以组合两个select语句的输出,如下所示:

(SELECT * FROM `something` order by some_column_name
limit 0,5)
union
(SELECT * FROM `something` order by some_column_name desc
limit 0,5
)

指定行的某些顺序,以便相应地选择行。

答案 1 :(得分:1)

也许更好的方法是在rowid子句中使用order by来获取基于插入行的第一行和最后一行:

select test from
(select test,rowid from table1 order by rowid asc limit 0,5)t1
union all
select test from
(select test,rowid from table1 order by rowid desc limit 0,5)t2;

以下是 SQL Fiddle

中的示例