无论何时完成像"select * from table where userid=xx"这样的查询,mysql都会从表的第一行到最后一行获取这些值。
但我希望选择从最后到第一个,以便最近更新的值在结果中显示在第一位。
我无法执行"select * from table where userid=xx order by time DESC",因为表中没有时间列。我只想在表格中最近更新的项目首先显示。
发布于 2012-09-12 01:04:49
如果您有任何自动递增字段,您可以按desc排序。
为了保证结果,您必须提供一个排序依据的列。因此,您必须要么更改表结构,要么决定排序依据。
一个技巧就是按顺序将数据放入一个数组中,然后开始从该数组的底部弹出。
发布于 2017-09-27 20:03:09
$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'];发布于 2012-09-12 01:05:56
你必须有一个时间戳,或者自动增量id,或者其他一些你想要排序的列。
不使用ORDER BY子句时,您可以按特定顺序从数据库中获取行,但这并不意味着可以保证按该顺序返回这些行。它也不暗示结果集中的任何顺序。你需要一个明确的字段,你可以用它来ORDER BY,否则你不能做你想做的事情。
https://stackoverflow.com/questions/12374543
复制相似问题