Подтвердить что ты не робот

MYSQL, как выбрать данные, где поле имеет минимальное значение

Пожалуйста, я хочу выбрать данные из таблицы, где определенное поле имеет значение min, я пробовал это:

SELECT * FROM pieces where min(price)

Я плохо разбираюсь в MySQL, пожалуйста, помогите? Благодаря

4b9b3361

Ответ 1

это даст вам результат с минимальной ценой по всем записям.

SELECT *
FROM pieces
WHERE price =  ( SELECT MIN(price) FROM pieces )

Ответ 2

Вот как бы я это сделал (предполагая, что я понимаю вопрос)

SELECT * FROM pieces ORDER BY price ASC LIMIT 1

Если вы пытаетесь выбрать несколько строк, в которых каждая из них может иметь одинаковую цену (что является минимальным), тогда необходимо ответить @JohnWoo.

В основном здесь мы просто заказываем результаты по цене в порядке ASCending (увеличение) и принимаем первую строку результата.

Ответ 3

Используйте HAVING MIN (...)

Что-то вроде:

SELECT MIN(price) AS price, pricegroup
FROM articles_prices
WHERE articleID=10
GROUP BY pricegroup
HAVING MIN(price) > 0;

Ответ 4

Это также работает:

SELECT
  pieces.*
FROM
  pieces inner join (select min(price) as minprice from pieces) mn
  on pieces.price = mn.minprice

(так как эта версия не имеет условия where с подзапросом, ее можно использовать, если вам нужно ОБНОВИТЬ таблицу, но если вам просто нужно выбрать SELECT, я рекомендую использовать решение John Woo)

Ответ 5

Фактически, зависит то, что вы хотите получить: - Просто минимальное значение:

SELECT MIN(price) FROM pieces
  • Таблица (кратные строки) с минимальным значением: Как сказано выше, Джон Ву сказал.

  • Но, если могут быть разные строки с одинаковым минимальным значением, лучше всего ЗАКАЗАТЬ их из другого столбца, потому что после или позже вам нужно будет это сделать (начиная с ответа Джона Ву):

    SELECT * FROM pieces WHERE price = (SELECT MIN (цена) ОТ штук) ORDER BY stock ASC

Ответ 6

Эффективный способ (с любым количеством записей):

SELECT id, name, MIN(price) FROM (select * from table order by price) as t group by id

Ответ 7

Сделать это проще

SELECT *, MIN (цена) FROM prod LIMIT 1

  • Положите *, чтобы отобразить всю запись минимального значения