2012-04-01 84 views
3

爲什麼只有其中一個查詢有效?MYSQL爲什麼ORDER BY DESC失敗,但ORDER BY ASC的工作?

作品:

SELECT * 
FROM `global_rank` 
WHERE rank_type = 2 
    AND rank < 1531.26367188 
    AND id <> 103 
ORDER BY rank ASC 

失敗(即返回0行):

SELECT * 
FROM `global_rank` 
WHERE rank_type = 2 
    AND rank < 1531.26367188 
    AND id <> 103 
ORDER BY rank DESC 
+0

你確定它在同一張桌子上,數據相同嗎?否則,它*必須*工作。 – wallyk 2012-04-01 03:22:58

+0

是的,我在phymyadmin運行這個和由於某種原因第二個不返回 – user257543 2012-04-01 03:37:49

+0

rank_type和等級被索引,我相信它與mysql索引不支持反向排序有關嗎? – user257543 2012-04-01 04:30:59

回答

4

沒有問題,您的SQL查詢他們是完美無瑕的。

請檢查您驗證查詢結果的方式。我知道有時我們忽略了結果(常見的人爲錯誤)。

1

經過幾個小時的思考,我幾乎可以肯定它必須是一個損壞的索引問題。刪除rank上的索引並重新添加它以查看行爲是否改變。