SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 30.03.2015 21:15:29

stahon
Участник
Зарегистрирован: 22.03.2015
Сообщений: 4

Не работает индекс в ORDER BY

Есть вроде бы простой запрос:

SELECT unick, my_point, @a := @a +1 AS place
FROM
(SELECT unick, my_point, @a :=0
FROM game
WHERE solitaireid =$one_id AND bestresult
ORDER BY my_point DESC
LIMIT 50,10) a

Есть составной индекс solitaireid, bestresult, my_point, который срабатывает для WHERE, но отказывается работать в ORDER BY (и время запроса подтверждает, и EXPLAIN). А вот причину понять не могу.

Причем если ORDER BY убрать, выборка получается отсортированной, но в обратной последовательности (

Отредактированно stahon (30.03.2015 21:23:11)

Неактивен

 

#2 30.03.2015 21:42:42

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Не работает индекс в ORDER BY

Попробуйте заменить условие на:

WHERE solitaireid =$one_id AND bestresult=1


AND bestresult может восприниматься как range-условие

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson