0

我有一张表(设计得很丑,但无论如何),它只包含字符串。最糟糕的是,有一个脚本可以随时添加记录。记录永远不会被删除。

我相信,MySQL 将记录存储在一个随机访问文件中,并且我可以使用 C 语言或其他东西获取最后一个记录或任何其他记录,因为我知道记录的最大长度并且我可以找到 EOF。

当我SELECT * FROM table在 MySQL 中执行类似“”的操作时,我会以正确的顺序获取所有记录 - 因为 MySQL 从头到尾读取此文件。我只需要最后一个。

有没有办法只使用 MySQL 查询获取 LAST 记录(或记录),而不使用ORDER BY


好吧,我想我在这里找到了解决方案,所以我当前的查询是

SELECT 
   @i:=@i+1 AS iterator, 
   t.* 
FROM 
   table t,
   (SELECT @i:=0) i 
ORDER BY 
     iterator DESC
LIMIT 5

如果有更好的解决方案,请告诉我!

4

2 回答 2

2

除非您使用ORDER BY. 碰巧的是,您返回的记录按照需要的方式进行了排序。

于 2013-06-04T14:45:24.000 回答
1

这是键的重要性(例如主键)。您可以通过添加默认值在表中进行一些primary key column修改auto_increment。然后就可以查询了

select * from your_table where id =(select max(id) from your_table);

并获取最后插入的行。

于 2013-06-04T14:46:58.083 回答