Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 获取文件中的最后一条记录_Mysql_Sql - Fatal编程技术网

Mysql 获取文件中的最后一条记录

Mysql 获取文件中的最后一条记录,mysql,sql,Mysql,Sql,我有一张设计得很难看的桌子,但无论如何,它只由绳子组成。最糟糕的是,有一个脚本每次添加记录。记录永远不会被删除 我相信,MySQL将记录存储在一个随机访问文件中,我可以使用C语言或其他语言获取最后一条或任何其他记录,因为我知道记录的最大长度,并且可以找到EOF 当我在MySQL中执行类似SELECT*FROM table的操作时,我会以正确的顺序获取所有记录,因为MySQL从头到尾都会读取该文件。我只需要最后一个 有没有一种方法可以只使用MySQL查询而不使用ORDER BY来获取最后一条或多条

我有一张设计得很难看的桌子,但无论如何,它只由绳子组成。最糟糕的是,有一个脚本每次添加记录。记录永远不会被删除

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

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

有没有一种方法可以只使用MySQL查询而不使用ORDER BY来获取最后一条或多条记录

嗯,我想我已经找到了一个解决方案,所以我当前的查询是

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

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

除非您使用order BY,否则订单不受保证。您要取回的记录恰好按照需要的方式进行了排序。

除非您使用order BY,否则无法保证顺序。恰好您要返回的记录按需要的方式进行了排序。

以下是键的重要性,例如主键。 您可以通过添加具有自动递增默认值的主键列来对表进行一些修改。 然后你可以查询

从_表中选择*,其中id=从_表中选择maxid


并获取最后插入的行。

这里是键的重要性,例如主键。 您可以通过添加具有自动递增默认值的主键列来对表进行一些修改。 然后你可以查询

从_表中选择*,其中id=从_表中选择maxid


并获取最后插入的行。

架构中是否有自动递增列?为什么没有order by?order by是正确的方法。使用order by,并确保在该列上添加索引。您为什么要避免使用order by?order by将根据您告诉它的内容进行排序。如果您说按字符串排序,其中字符串是包含数字的字符串列,那么它将按字母顺序排序。但是,在这种情况下,ORDER BY CONVstring,10,10将进行数字排序。模式中有自动递增列吗?为什么没有ORDER BY?order by是正确的方法。使用order by,并确保在该列上添加索引。您为什么要避免使用order by?order by将根据您告诉它的内容进行排序。如果您说按字符串排序,其中字符串是包含数字的字符串列,那么它将按字母顺序排序。但是,在这种情况下,按CONVstring,10,10排序,然后它将按数字排序。是的,我知道表的设计很难看,但我可以不改变它就这样做吗?@shomel一旦你知道你的表很难看,并开始感觉到它的“挤压”,这就是修改它的正确时间:是的,我知道表的设计很难看,但我可以不更改它就这样做吗?@shomel一旦你知道你的表很难看并开始感觉到它的“挤压”,那就是修改它的正确时间:是的,这不是保证,但因为它是随机访问文件,我从不删除记录-最新的记录总是在最后-因此我可以使用其他方法获得它们。但是我想知道是否有一种方法可以使用MySQL的特性?很可能返回的顺序是物理顺序。你需要有一个可以排序的列,然后你可以尝试Bere建议的方法。是的,这不是保证,但因为它是一个随机访问文件,我从不删除记录-最新的记录总是在最后-因此我可以使用其他方法获取它们。但是我想知道是否有一种方法可以使用MySQL的特性?很可能返回的顺序是物理顺序。您需要有一个可以排序的列,然后您可以尝试Bere建议的内容。