我正在开发php小项目,这里我需要从记录开头的前5条记录和表格记录末尾的最后一条记录1。我不知道如何写一个mysqli查询。 任何帮助将不胜感激。提前谢谢。
答案 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
- 除非您希望产生删除重复值的开销。答案 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)