MySQL选择没有主ID或日期字段的最后插入记录

时间:2012-09-07 18:22:43

标签: php mysql select

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

Email, Flag1, Flag2

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

据我所知,通过使用简单的"插入"添加新记录来填充表格。到表的末尾。

我知道如何在PHP + MySQL中做到这一点(非常丑陋的方式: SELECT ALL RECORDS 在php循环中为每个记录自动增加ID分配,并得到最后100个记录。

使用纯MySQL有更优雅的方法吗?

2 个答案:

答案 0 :(得分:2)

由于您的索引将根据您拥有的任何主键进行排序,因此无法获取最后插入的记录而没有唯一的方法来标识该行(例如iddate) (在这种情况下假设Email)。

答案 1 :(得分:1)

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

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

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