我正在开发一个小型php项目,这里我需要从记录的开头获取前5条记录和最后1条记录。我不知道如何编写一个单独的mysqli查询。
非常感谢您的帮助。
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
--除非您想承担删除重复值的开销。UNION ALL
。如果你只需要五条记录,那么请使用 UNION
。@UmarShahzad - Gordon Linoff(SELECT * FROM table ORDER BY field ASC LIMIT 5)
UNION
(SELECT * FROM table ORDER BY field DESC LIMIT 1)