MYSQL comment sélectionner des données où un champ a une valeur min

Veuillez sélectionner les données d'une table, où un champ spécifique a la valeur min, j'ai essayé ceci:

SELECT * FROM pieces where min(price)

Je ne suis pas bon avec MySQL, veuillez aider? Merci

24
demandé sur VolkerK 2012-11-13 11:50:40

6 réponses

Cela vous donnera un résultat qui a le prix minimum sur tous les enregistrements.

SELECT *
FROM pieces
WHERE price =  ( SELECT MIN(price) FROM pieces )
48
répondu John Woo 2012-11-13 08:17:51

C'est comme ça que je le ferais (en supposant que je comprends la question)

SELECT * FROM pieces ORDER BY price ASC LIMIT 1

Si vous essayez de sélectionner plusieurs lignes où chacune d'elles peut avoir le même prix (ce qui est le minimum), la réponse de @ JohnWoo devrait suffire.

Fondamentalement, nous ne faisons que classer les résultats par le prix dans L'ordre croissant (Croissant) et prendre la première rangée du résultat.

31
répondu sberry 2012-11-13 07:58:35

Utilisez ayant MIN(...)

Quelque Chose comme:

SELECT MIN(price) AS price, pricegroup
FROM articles_prices
WHERE articleID=10
GROUP BY pricegroup
HAVING MIN(price) > 0;
4
répondu pulsit 2014-05-17 12:34:41

Cela fonctionne aussi:

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

(puisque cette version n'a pas de condition where avec une sous-requête, elle pourrait être utilisée si vous avez besoin de mettre à jour la table, mais si vous avez juste besoin de sélectionner, je recommanderais d'utiliser la solution John Woo)

2
répondu fthiella 2012-11-13 08:32:04

En fait, dépend de ce que vous voulez obtenir: - Juste la valeur min:

SELECT MIN(price) FROM pieces
  • Une table (multiples lignes) avec la valeur min: est comme John Woo a dit ci-dessus.

  • Mais, si peut être différentes lignes avec la même valeur min, le mieux est de les commander à partir d'une autre colonne, car après ou plus tard, vous devrez le faire (à partir de John Woo answere):

    Sélectionner * parmi les pièces Où prix = (sélectionnez MIN (prix) à partir de pièces) Commande par stock ASC

1
répondu Daniel Rodriguez 2016-03-10 18:48:21

Pour le rendre plus simple

Sélectionnez *, MIN (prix) à partir de la limite de prod 1

  • Put * de sorte qu'il affichera tout l'enregistrement de la valeur minimale
-4
répondu Mark Valenzuela 2016-10-03 12:41:00