Maison >base de données >tutoriel mysql >Comment mettre à jour des lignes avec des combinaisons date-prix uniques dans un tableau de ventes ?
Mise à jour des enregistrements de ventes avec des combinaisons uniques date-prix
Ce guide montre comment identifier et mettre à jour les enregistrements de ventes qui possèdent des combinaisons prix-date uniques dans un tableau de ventes. L'objectif est de mettre à jour uniquement ces entrées de ventes sans aucun doublon partageant le même prix et la même date.
Une méthode implique un processus en deux étapes utilisant des requêtes SQL :
Étape 1 : Identifier les combinaisons uniques
La requête suivante sélectionne des combinaisons saleprice
et saledate
uniques, ainsi que leurs id
correspondants et le nombre d'occurrences :
<code class="language-sql">SELECT DISTINCT saleprice, saledate, id, COUNT(*) AS count FROM sales GROUP BY saleprice, saledate HAVING COUNT(*) = 1;</code>
Cette requête regroupe les enregistrements de ventes par saleprice
et saledate
, puis filtre les résultats en utilisant HAVING
pour conserver uniquement les groupes comptant un, ce qui signifie des combinaisons uniques.
Étape 2 : Mise à jour du tableau des ventes
Pour mettre à jour le status
de ces enregistrements de ventes uniques sur « ACTIF », utilisez la requête suivante :
<code class="language-sql">UPDATE sales SET status = 'ACTIVE' WHERE id IN ( SELECT id FROM sales s INNER JOIN ( SELECT saleprice, saledate FROM sales GROUP BY saleprice, saledate HAVING COUNT(*) = 1 ) AS unique_sales ON s.saleprice = unique_sales.saleprice AND s.saledate = unique_sales.saledate );</code>
Cette requête met à jour la table sales
, en définissant le status
sur « ACTIVE » pour les enregistrements dont id
correspond à ceux identifiés dans la sous-requête. La sous-requête récupère efficacement les valeurs id
associées aux combinaisons uniques saleprice
et saledate
. Le INNER JOIN
garantit que seuls les enregistrements correspondants sont mis à jour.
Cette approche exploite la puissance des clauses GROUP BY
et HAVING
pour effectuer efficacement une sélection distincte sur plusieurs colonnes et obtenir les mises à jour souhaitées.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!