如何在mysql中从最后一行到第一行进行选择

时间:2012-09-11 17:01:14

标签: php mysql sorting

每当一个查询就好 "select * from table where userid=xx"完成后,mysql从中获取这些值 第一行到最后一行表。

但我想从最后到第一个进行选择,以便最近更新的值首先显示在结果中。

我无法执行"select * from table where userid=xx order by time DESC",因为表格中没有时间列。 我只想在最近显示的表中更新最近的项目。

4 个答案:

答案 0 :(得分:1)

$result= mysql_query("SELECT 
(SELECT column FROM table WHERE [condition] ORDER BY column LIMIT 1) as 'first',
(SELECT column FROM table WHERE [condition] ORDER BY column DESC LIMIT 1) as 'last'");

$row=mysql_fetch_array($result);
echo $row['first'];
echo $row['last'];

答案 1 :(得分:0)

如果您有任何自动递增字段,您可以按该desc排序。

您必须提供一个订单栏,以保证结果。因此,您必须更改表格结构或决定要订购的内容。

黑客将按照呈现的顺序将数据拉入数组,然后开始弹出该数组的底部。

答案 2 :(得分:0)

您必须拥有时间戳或自动增量ID,或者您要排序的其他列。

仅仅因为在不使用ORDER BY子句时从数据库获取特定顺序的行,并不意味着它们保证按该顺序返回。它也不暗示结果集中的任何顺序。您需要一个可以用于ORDER BY的权威字段,或者您不能做您想做的事情。

答案 3 :(得分:0)

如果您没有可以依赖的列,那么您可以为此做些什么:

SELECT * FROM (SELECT *,(@x:=@x+1) default_ordering FROM `table_name`, (SELECT @x:=0) t2) any_name ORDER BY default_ordering DESC