当尝试从 MySQL 数据库检索最后 N 行时,按升序对它们进行排序可能会很棘手。当可以操作行时,标准 DESC 顺序会失败。同样,如果行被删除,使用 WHERE 子句选择 ID 大于最大 ID 减 N 的行可能会失败。
要克服这些挑战,可以使用子查询:
SELECT * FROM ( SELECT * FROM table ORDER BY id DESC LIMIT 50 ) AS sub ORDER BY id ASC;
此查询首先使用 LIMIT 子句从 'table' 表中按降序选择最后 50 行。该子查询的结果存储在“sub”表中。最后,子查询本身按“id”列升序排序。
通过使用子查询,最后 N 行的选择与排序过程隔离。这可确保始终选择最后 N 行,即使在原始表中添加或删除行也是如此。子查询的内部查询按降序对行进行排序,而外部查询则按升序对子查询的结果进行排序。
以上是如何按升序从 MySQL 检索最后 N 行?的详细内容。更多信息请关注PHP中文网其他相关文章!