Top.Mail.Ru
Ответы

Нужна идея по оптимизации запроса (MySQL+PHP)

Собственно есть такой запрос:

$query="SELECT * FROM `".$x."` where category='".$y."' ORDER BY `exittime` DESC LIMIT ".$t.", 10";

Он выводит все позиции в определенной категории сортируя их по времени отгрузки начиная с последнего. По десять на страницу.
Проблема в том, что в таком варианте еще не отгруженные позиции он выводит в конце списка.
Передо мной стоит задача сохранив сортировку по данному параметру вывести не отгруженные позиции на первой странице.
Понятно, что можно сделать два запроса, но во первых это очень сильно увеличивает длину кода. А во вторых возникает проблема в сортировке по страницам, понятно, что тоже за 5 минут решается, но может есть вариант решения средствами MySQL?

По дате
По рейтингу
Аватар пользователя
Знаток
10лет

select table.*,0 otgr from table_name where otgr= 0
union
select table.*,1 otgr from table_name where otgr= 1
order by otgr
идея примерно понятна ?

Аватар пользователя
Знаток
10лет

2 первых ответа - от полной безысходности ))

Аватар пользователя
Мастер
10лет

создай ключ для "отгруженные позиции" и будет счастье!

Аватар пользователя
Мыслитель
10лет

Самый простой и тупой способ, забрать все что есть. А обработать средствами php - куда надо первые 10, куда надо последние, Но тогда стоит еще добавить ограничение по времени, а то всю таблицу грузить глуппо

Аватар пользователя
Ученик
10лет

угу, таблица большая а эти два участка получаются с разных ее сторон



Видео по теме