Задавайте вопросы, мы ответим
Вы не зашли.
Есть ряд запросов наподобии:
SELECT sc.id, sc.menuindex FROM
`site_content` sc LEFT JOIN
`document_groups` dg on dg.`document` = sc.`id` WHERE
sc.`published`=1 AND sc.`deleted`=0 AND (sc.`privateweb`=0) GROUP BY sc.`id`
ORDER BY sc.`menuindex` DESC
которые не сортируютя в MySQL 5.
Как видно запрос соответствует синтаксису MySQL.
Но результат возвращается абсолютно не отсортированным.
Хотя простой запрос без JOIN сортируется правильно.
Сталкивался кто-нибудь с такой проблемой?
Неактивен
Не вполне соответствует синтаксису. Например, если Вы установите set @@sql_mode='ONLY_FULL_GROUP_BY'; то Ваш запрос будет приводить к ошибке.
GROUP BY делает группировку по определенным полям (и неявную сортировку). Если Вы указали в SELECT поля, по которым не производится группировка без агрегирующих функций (MAX, SUM, AVG, GROUP_CONCAT, ...), то MySQL выберет произвольного представителя группы, что имеет довольно мало смысла - запрос непредсказуем.
Если хотите все же бороться, делайте сортировку в подзапросе
SELECT * FROM ( Ваш запрос) ORDER BY ...;
Обсуждение GROUP BY и стандарта есть в статье:
http://dev.mysql.com/tech-resources/art … myths.html
Неактивен
Да, действительно проблема в GROUP BY, без него сортируется правильно..
Неактивен