每当一个查询就好
"select * from table where userid=xx"
完成后,mysql从中获取这些值
第一行到最后一行表。
但我想从最后到第一个进行选择,以便最近更新的值首先显示在结果中。
我无法执行"select * from table where userid=xx order by time DESC"
,因为表格中没有时间列。
我只想在最近显示的表中更新最近的项目。
答案 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