簡體   English   中英

如何在mysql中從最后一行選擇

[英]How to select from last to first row in mysql

每當執行"select * from table where userid=xx"這樣的查詢時,mysql就會從表的第一行到最后一行獲取這些值。

但我想從最后到第一進行選擇,以便最近更新的值首先顯示在結果中。

我無法執行"select * from table where userid=xx order by time 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'];

如果您有任何自動遞增字段,則可以按該desc排序。

您必須提供一個要訂購的列,以保證結果。 因此,您將不得不更改表結構或決定要訂購的商品。

黑客可以按照顯示的順序將數據提取到陣列中,然后從該陣列的底部彈出。

您要么必須具有時間戳記,要么必須具有自動增量ID,或者要具有其他排序依據。

僅僅因為您在不使用ORDER BY子句時從數據庫中以特定順序獲得行,並不意味着一定可以按該順序返回它們。 它也不意味着結果集中的任何順序。 您需要一個可用於ORDER BY的確定性字段,否則您將無法做您想做的事情。

如果沒有專欄,可以依靠一些技巧:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM