2012-04-01 13 views
3

これらのクエリの1つのみが動作するのはなぜですか?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行を返す):彼らは完璧です、あなたのSQLクエリに問題がない

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

非常に同じデータで、同じテーブルにあることは確かですか?さもなければ、それは*働かなければなりません。 – wallyk

+0

はい、私はphymyadminでこれを実行しています。何らかの理由で2番目のものが何も返さない – user257543

+0

rank_typeとrankがインデックスに登録されています。逆の順序付けをサポートしていないmysqlインデックス付けと関係がありますか? – user257543

答えて

4

を。

クエリの結果を検証する方法を確認してください。私は時には結果を見過ごすことがあることを知っています(人間の共通の誤り)。

1

これを数時間熟考した後、私はそれが壊れたインデックスの問題でなければならないと確信しています。インデックスをrankにドロップし、それを再度追加して、動作が変わるかどうか確認してください。

関連する問題