2012-04-01 3 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

+0

да, я запускаю это в phymyadmin, и почему-то второй ничего не возвращает – user257543

+0

rank_type и rank проиндексированы, и я считаю, что он имеет какое-то отношение к индексированию mysql, не поддерживающему обратное упорядочение? – user257543

ответ

4

Там нет никаких проблем с SQL запросов они безупречны.

Проверьте, как вы проверяете результаты своего запроса. Я иногда знаю, что мы не замечаем результатов (общая человеческая ошибка).

1

Обдумав это в течение нескольких часов, я почти уверен, что это проблема с поврежденным индексом. Снимите индекс на rank и заново добавьте его, чтобы узнать, изменилось ли поведение.