MYSQL jak wybrać DANE gdzie pole ma wartość min

Proszę chcę wybrać dane z tabeli, gdzie określone pole ma wartość minimalną, próbowałem tego:

SELECT * FROM pieces where min(price)

Nie jestem dobry z MySQL, proszę o pomoc ? Dzięki

Author: VolkerK, 2012-11-13

6 answers

To daje wynik, który ma minimalną cenę na wszystkich rekordach.

SELECT *
FROM pieces
WHERE price =  ( SELECT MIN(price) FROM pieces )
 48
Author: John Woo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-11-13 08:17:51

Tak bym to zrobił (zakładając, że rozumiem pytanie)

SELECT * FROM pieces ORDER BY price ASC LIMIT 1

Jeśli próbujesz wybrać wiele wierszy, w których każdy z nich może mieć tę samą cenę (co jest minimum), odpowiedź @JohnWoo powinna wystarczyć.

Zasadniczo tutaj po prostu zamawiamy wyniki według ceny w porządku rosnącym (rosnącym) i pobieramy pierwszy wiersz wyniku.

 31
Author: sberry,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-11-13 07:58:35

Użyj mając MIN (...)

Coś w stylu:

SELECT MIN(price) AS price, pricegroup
FROM articles_prices
WHERE articleID=10
GROUP BY pricegroup
HAVING MIN(price) > 0;
 4
Author: pulsit,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-05-17 12:34:41

To również działa:

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

(ponieważ ta wersja nie ma warunku where z zapytaniem podrzędnym, może być używana, jeśli chcesz zaktualizować tabelę, ale jeśli musisz tylko wybrać, polecam użycie rozwiązania John Woo)

 2
Author: fthiella,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-11-13 08:32:04

W rzeczywistości, zależy co chcesz dostać: - Tylko wartość min:

SELECT MIN(price) FROM pieces
  • Tabela (wielokrotność wierszy) o wartości min: jest jak John Woo powiedział powyżej.

  • Ale, jeśli mogą być różne wiersze o tej samej wartości minimalnej, najlepiej jest zamówić je z innej kolumny, ponieważ po lub później będziesz musiał to zrobić (zaczynając od John Woo answere):

    SELECT * FROM pieces Gdzie cena = (wybierz MIN (cena) z Sztuk) ORDER BY stock ASC

 1
Author: Daniel Rodriguez,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-10 18:48:21

Aby uprościć

Wybierz*, MIN (cena) z prod LIMIT 1

  • Umieść * tak, aby wyświetlał cały rekord minimalnej wartości
 -4
Author: Mark Valenzuela,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-03 12:41:00