如何从表mysql获取前5条和后1条记录?

时间:2017-09-16 14:19:18

标签: php mysql

我正在开发php小项目,这里我需要从记录开头的前5条记录和表格记录末尾的最后一条记录1。我不知道如何写一个mysqli查询。 任何帮助将不胜感激。提前谢谢。

2 个答案:

答案 0 :(得分:7)

SQL表代表无序集。因此,没有前五行或最后一行 - 除非列明确定义了排序。

通常,表具有某种自动递增的id列,可用于此目的。如果是这样,你可以这样做:

(select t.*
 from t
 order by id asc
 limit 5
) union all
(select t.*
 from t
 order by id desc
 limit 1
);

注意:

  • 有时,插入日期/时间列是要使用的相应列。
  • 您希望使用union all而不是union - 除非您希望产生删除重复值的开销。
  • 对于此配方,如果少于6行,那么您将获得重复。

答案 1 :(得分:5)

UNION运算符允许这样做,小心地使用ORDER BY和LIMIT子句:

(SELECT * FROM table ORDER BY field ASC LIMIT 5)
UNION
(SELECT * FROM table ORDER BY field DESC LIMIT 1)