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 * таким образом, он отобразит всю запись минимального значения