MYSQL как выбрать данные, где поле имеет минимальное значение
пожалуйста, я хочу выбрать данные из таблицы, где определенное поле имеет минимальное значение, я попытался это :
SELECT * FROM pieces where min(price)
Я не хорош с MySQL, пожалуйста, любая помощь ? Спасибо
6 ответов
это даст вам результат, который имеет минимальную цену по всем записям.
SELECT *
FROM pieces
WHERE price = ( SELECT MIN(price) FROM pieces )
вот как я бы это сделал (предполагая, что я понимаю вопрос)
SELECT * FROM pieces ORDER BY price ASC LIMIT 1
Если вы пытаетесь выбрать несколько строк, где каждая из них может иметь одинаковую цену (которая является минимальной), то ответ @JohnWoo должен быть достаточным.
в основном здесь мы просто упорядочиваем результаты по цене в порядке возрастания (увеличения) и берем первую строку результата.
использовать ИМЕЯ 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 с подзапросом, его можно использовать, если вам нужно обновить таблицу, но если вам просто нужно выбрать, я бы рекомендовал использовать решение John Woo)
в самом деле, зависит от того, что вы хотите сделать: - Только минимальное значение:
SELECT MIN(price) FROM pieces
таблица (кратные строки) с минимальным значением: как сказал Джон Ву выше.
-
но, если могут быть разные строки с одинаковым минимальным значением, лучше всего заказать их из другого столбца, потому что после или позже вам нужно будет это сделать (начиная с John Woo answere):
выбрать * из частей Где price = (выберите MIN (цена) из частей) Заказ по акциям ASC
чтобы сделать его проще
SELECT *, MIN (price) FROM prod LIMIT 1
- Put * таким образом, он отобразит всю запись минимального значения