Проблема в том, что при каждом запросе к базе данных, меняется последовательность вывода продуктов, при этом есть сортировка:
ORDER BY p.sort_order ASC, LCASE(p.name) ASC
Вот полный запрос:
SELECT p.product_id, MIN(p2s.price) AS min_price FROM product p LEFT JOIN product_to_supplier p2s ON p2s.product_id=p.product_id WHERE p.status = '1' AND p.date_available <= NOW() AND p2s.price>0 AND p2s.quantity>0 AND p.manufacturer_id = '5011' GROUP BY p.product_id ORDER BY p.sort_order ASC, LCASE(p.name) ASC LIMIT 0,15
;
Если я удаляю из запроса условие p.manufacturer_id = '5011' или AND p2s.price>0 , тогда сортировка(последовательность) в таблице остается неизменной, как мне и нужно.
Вот что происходит с данными, если я несколько раз выполню sql:
Первый раз выполняю и выводится так:
Выполняю повторно запрос и получаю так:
То есть, каждый раз, когда я выполняю запрос, меняется последовательность вывода продуктов.
Вопрос: Как это пофиксить и почему это случается? Слишком много условий?