每当完成如 "select * from table where userid=xx"
这样的查询时,mysql会将这些值从 第一行读取到表的最后一行。如何从mysql的最后一行选择到第一行
但我想从最后到第一次选择,以便最近更新的值首先显示在结果中。我不能做"select * from table where userid=xx order by time DESC"
,因为表中没有时间列。 我只希望最近更新表中的项目首先显示。
每当完成如 "select * from table where userid=xx"
这样的查询时,mysql会将这些值从 第一行读取到表的最后一行。如何从mysql的最后一行选择到第一行
但我想从最后到第一次选择,以便最近更新的值首先显示在结果中。我不能做"select * from table where userid=xx order by time DESC"
,因为表中没有时间列。 我只希望最近更新表中的项目首先显示。
如果您有任何自动递增字段,您可以按该desc进行排序。
您必须提供一个专栏来确保结果。所以你将不得不改变你的表格结构或者决定要点什么。
一劈将是呈现到一个数组中的顺序要提取的数据,然后开始突然离开该阵列的底部。
阵列解决方案的IDS工作对我来说 – phpuser
你要么必须有一个要作为排序依据时间戳,或自动增量ID,或其他一些列。
仅仅因为您在不使用ORDER BY
子句时以某种顺序从数据库获取行,并不表示它们将按照该顺序返回。它也不意味着结果集中的任何顺序。你需要一个明确的领域,你可以使用ORDER BY
,或者你不能做你想做的事情。
+1对不起,我不能给票,因为表低于15代表 – phpuser
一些黑客则可以针对此做,如果你没有,你可以依靠列:
SELECT * FROM (SELECT *,(@x:[email protected]+1) default_ordering FROM `table_name`, (SELECT @x:=0) t2) any_name ORDER BY default_ordering DESC
$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'];
请提供您的回答,并提供明确的描述。不要编写代码,给出关于您共享的代码的解释,以便其他人也可以理解,这会有所帮助。我请求你阅读FAQ部分,以便有效地使用Stack Overflow。 –
是否有更新时,作了一个跟踪表什么? – andrewsi
你有一个自动递增的ID吗? – Tchoupi
数据库中是否存在行的基本次序,但您自己定义的除外?我不认为行顺序在数据库规范中是必需的,尽管我可能是错的。 –