Нужна идея по оптимизации запроса (MySQL+PHP)
Собственно есть такой запрос:
$query="SELECT * FROM `".$x."` where category='".$y."' ORDER BY `exittime` DESC LIMIT ".$t.", 10";
Он выводит все позиции в определенной категории сортируя их по времени отгрузки начиная с последнего. По десять на страницу.
Проблема в том, что в таком варианте еще не отгруженные позиции он выводит в конце списка.
Передо мной стоит задача сохранив сортировку по данному параметру вывести не отгруженные позиции на первой странице.
Понятно, что можно сделать два запроса, но во первых это очень сильно увеличивает длину кода. А во вторых возникает проблема в сортировке по страницам, понятно, что тоже за 5 минут решается, но может есть вариант решения средствами MySQL?
select table.*,0 otgr from table_name where otgr= 0
union
select table.*,1 otgr from table_name where otgr= 1
order by otgr
идея примерно понятна ?
2 первых ответа - от полной безысходности ))
создай ключ для "отгруженные позиции" и будет счастье!
Самый простой и тупой способ, забрать все что есть. А обработать средствами php - куда надо первые 10, куда надо последние, Но тогда стоит еще добавить ограничение по времени, а то всю таблицу грузить глуппо
угу, таблица большая а эти два участка получаются с разных ее сторон