2012-02-24 21 views
2

我是MySQL的新手......所以我相信這可能是一個簡單的解決方案...我已經嘗試過教程和其他幫助主題,但無法弄清楚爲什麼它不工作。找不到MySQL ORDER BY

我有一個自動遞增索引的數據表。我想選擇表格的最後2行。這是我有:

SELECT * FROM tburg_golf ORDER BY 'index' DESC LIMIT 2 

由於某種原因,但它給了我前兩行。我已經嘗試刪除限制,將DESC更改爲ASC ...我能想到的所有內容。

如果好奇,這是一塊較大的部分代碼:

$result = mysql_query("SELECT * FROM tburg_golf ORDER BY 'index' DESC LIMIT 2"); 

while($row = mysql_fetch_assoc($result)) { 
    $date = $row['date']; 
    $day = $row['day']; 
    $time = $row['time']; 
    $icon = $row['icon']; 
    $forecast = $row['forecast']; 
    $updated = $row['updated']; 

echo $date.$day.$time.$icon.$forecast.$updated.'<p>'; 
} 
+0

您的自動增量列是否被稱爲索引?如果刪除'索引'附近的引號會怎麼樣? – isotrope 2012-02-24 14:28:54

+1

刪除引號會導致錯誤,因爲'index'是MySQL中的保留關鍵字。你需要用反引號' – 2012-02-24 14:30:46

+0

來代替你的引用。絕對是我的一部分。 – isotrope 2012-02-24 14:52:54

回答

2

您正在訂購'index'這是一個字符串常量。列名反而被'

包圍,如果你的自動遞增列實際上被稱爲index,這將起作用;

SELECT * FROM tburg_golf ORDER BY `index` DESC LIMIT 2 

排序方式'index'將使用相同的字符串,它基本上都會給你以隨機順序行每行進行排序。

+0

哦......我以爲這是'單引號。非常感謝你清理這個問題。它現在很好用! :) – 2012-02-24 15:22:30

3
SELECT * FROM tburg_golf ORDER BY `index` DESC LIMIT 2 

如果鍵入'index' MySQL會爲了通過串'index',這是所有元組是相同的,而不是你的欄目index

2

表中有一個名爲「index」的字段嗎?

如果有我相信單詞索引是MySQL中的保留字,這就是爲什麼它可能無法正常工作。重命名字段或用`而不是'包裝它,例如

SELECT * FROM tburg_golf ORDER BY `index` DESC LIMIT 2 
+0

哦......我以爲這是'單引號。非常感謝你清理這個問題。它現在很好用! :) – 2012-02-24 15:22:49