1

我有一个包含以下字段的 MySQL 表:

Email, Flag1, Flag2

问题: 有什么方法可以进行选择以获取最后 100 个插入的字段?

据我了解,表格是通过在表格末尾添加带有简单“插入”的新记录来填充的。

我有一个想法如何在 PHP+MySQL 中做到这一点(非常丑陋的方式:选择所有记录在 php 循环中为每个记录分配自动递增的 ID,并获取最后 100 条记录。

有没有更优雅的方法可以用纯 MySQL 做到这一点?

4

2 回答 2

2

如果没有唯一的方法来标识行(例如 anid或 a date),则无法获取最后插入的记录,因为您的索引将根据您拥有的任何主键进行排序(假设Email在这种情况下)。

于 2012-09-07T18:25:32.053 回答
1

这是不可能的,因为如果您不设置带有时间戳或自动增量的字段,系统将如何知道最后插入的内容?所以你有两个简单的选择。

  • 创建一个时间戳字段:当您下订单时select * from yourtamble order by timefield desc limit 100

  • 创建一个具有自动增量的 ID。这样做的好处是您可以拥有一个主键并知道插入列表的确切顺序,坏处是您需要另一个字段时间来知道何时插入数据。作为时间戳解决方案,您可以制作select * from yourtamble order by id desc limit 100

于 2012-09-07T19:36:10.180 回答