узнать как в один.
Имеем поле id AUTO_INCREMENT UNSIGNED PRIMARY KEY
1
3
10
...
99
100
102
105
110
117
...
998
1000
Задача:
Выбрать 5 полей id которые следуют за 99 в порядке убывания.
Т.е. нужно получить:
117
110
105
102
100
Спустя 1 час, 57 минут, 1 секунда (23.10.2009 - 18:06) glock18 написал(а):
1.
SQL |
select * from (select * from users u where id_user > 18 order by id_user asc limit 5 ) u order by u.id_user desc; |
explain с filesort получается.
2.
SQL |
select * from users u where id_user < 1 + (select id_user from users u where id_user > 18 order by id_user asc LIMIT 4, 1) order by u.id_user desc limit 5; |
explain гораздо лучше.
Спустя 13 минут, 4 секунды (23.10.2009 - 18:19) Sylex написал(а):
блин, надо свою задачку выложить

Спустя 2 минуты, 1 секунда (23.10.2009 - 18:21) Michael написал(а):
Ну нормально - о первом я примерно знал, думал как в один select может можно.
Завтра уже поввожу. (и во втором варианте поразбираюсь
)
Завтра уже поввожу. (и во втором варианте поразбираюсь

Спустя 27 минут, 52 секунды (23.10.2009 - 18:49) glock18 написал(а):
Цитата |
блин, надо свою задачку выложить |
выкладывай


_____________
There never was a struggle in the soul of a good man that was not hard