Я бегу застрял в запросе MySQL, который не делает то, что я хочу. Из списка изображений продукта мне нужно получить номер с самым низким номером order
. Я использую запрос ниже, чтобы сделать это:MySQL HAVING MIN() не возвращает минимальное значение
SELECT id FROM media
WHERE media.productgroup_id = 102
AND media.product_id= 902
AND media.type = 0
HAVING MIN(media.order)
База данных таблицы media
содержит:
id | productgroup_id | product_id | order | type
47215 | 102 | 902 | 2 | 0
47216 | 102 | 902 | 1 | 0
47217 | 102 | 902 | 3 | 0
Запуск выше запрос возвращает мне идентификатор 47215
, где я ожидал 47216
. Таким образом, он возвращает минимальный id, а не минимальный порядок.
Какую ошибку я могу сделать?
Ваш запрос не имеет никакого смысла, так как вы используете групповую функцию без группировки там –
Вы пропускаете 'группы by' и условие сравнения результата' MIN (media.order) 'к чему-то (например, 'с MIN (media.order) = 10'). Каждая другая СУБД просто отклонит ваш запрос. –
@a_horse_with_no_name MySQL - это PHP RDBMS, позволяющий вам делать странные вещи :-) – Jcl