Пожалуйста, я хочу выбрать данные из таблицы, где определенное поле имеет значение min, я пробовал это:
SELECT * FROM pieces where min(price)
Я плохо разбираюсь в MySQL, пожалуйста, помогите? Благодаря
Пожалуйста, я хочу выбрать данные из таблицы, где определенное поле имеет значение min, я пробовал это:
SELECT * FROM pieces where min(price)
Я плохо разбираюсь в MySQL, пожалуйста, помогите? Благодаря
это даст вам результат с минимальной ценой по всем записям.
SELECT *
FROM pieces
WHERE price = ( SELECT MIN(price) FROM pieces )
Вот как бы я это сделал (предполагая, что я понимаю вопрос)
SELECT * FROM pieces ORDER BY price ASC LIMIT 1
Если вы пытаетесь выбрать несколько строк, в которых каждая из них может иметь одинаковую цену (что является минимальным), тогда необходимо ответить @JohnWoo.
В основном здесь мы просто заказываем результаты по цене в порядке ASCending (увеличение) и принимаем первую строку результата.
Используйте HAVING MIN (...)
Что-то вроде:
SELECT MIN(price) AS price, pricegroup
FROM articles_prices
WHERE articleID=10
GROUP BY pricegroup
HAVING MIN(price) > 0;
Это также работает:
SELECT
pieces.*
FROM
pieces inner join (select min(price) as minprice from pieces) mn
on pieces.price = mn.minprice
(так как эта версия не имеет условия where с подзапросом, ее можно использовать, если вам нужно ОБНОВИТЬ таблицу, но если вам просто нужно выбрать SELECT, я рекомендую использовать решение John Woo)
Фактически, зависит то, что вы хотите получить: - Просто минимальное значение:
SELECT MIN(price) FROM pieces
Таблица (кратные строки) с минимальным значением: Как сказано выше, Джон Ву сказал.
Но, если могут быть разные строки с одинаковым минимальным значением, лучше всего ЗАКАЗАТЬ их из другого столбца, потому что после или позже вам нужно будет это сделать (начиная с ответа Джона Ву):
SELECT * FROM pieces WHERE price = (SELECT MIN (цена) ОТ штук) ORDER BY stock ASC
Эффективный способ (с любым количеством записей):
SELECT id, name, MIN(price) FROM (select * from table order by price) as t group by id
Сделать это проще
SELECT *, MIN (цена) FROM prod LIMIT 1