Короткий ответ: Нет
Я подозреваю, (потому что вы не предоставите свой первоначальный запрос), который вы используете что-то вроде этого:
SELECT size,color, in_stock
FROM atable
GROUP BY size,color
MySQL разрешает предложение GROUP BY иметь только несколько неагрегационных столбцов - НО это делает это только в силу настройки сервера
см: http://dev.mysql.com/doc/refman/5.0/en/group-by-handling.html
Если вы используете эту «функцию», нет контроля над тем, какие данные выбраны в других неагрегационных столбцах.
Вы не должны использовать эту «функцию» MySQL, потому что если настройки сервера отключат это расширение, ваши запросы больше не будут работать.
Вы могли бы сделать что-то вроде этого, вместо:
SELECT size,color, MIN(case when in_stock = 1 then in_stock else NULL end)
FROM atable
GROUP BY size,color
Append 'ORDER BY in_stock DESC' до конца вашего заявления. –
Я уже пробовал это. К сожалению, он упорядочивает после того, как он группируется, поэтому он не оказывает никакого эффекта. – Pat
Пожалуйста, покажите свой полный запрос – Bohemian