


Comment sélectionner efficacement des lignes distinctes en fonction de plusieurs colonnes dans SQL ?
Jan 23, 2025 am 05:56 AMSélectionnez efficacement des lignes uniques basées sur plusieurs colonnes
Lorsque vous travaillez avec des tables de données, il est souvent nécessaire de récupérer uniquement des lignes uniques en fonction de conditions spécifiques. Dans cet exemple, l'objectif est de sélectionner toutes les lignes du tableau qui ont une combinaison unique de deux colonnes.
L'approche originale consistait à utiliser une combinaison de clauses DISTINCT
et IN
pour identifier des lignes uniques :
UPDATE sales SET status = 'ACTIVE' WHERE id IN (SELECT DISTINCT (saleprice, saledate), id, count(id) FROM sales HAVING count = 1)
Cependant, une méthode plus efficace et plus fiable consiste à utiliser la clause GROUP BY
:
SELECT DISTINCT a,b,c FROM t
Cela équivaut à :
SELECT a,b,c FROM t GROUP BY a,b,c
GROUP BY
regroupe les lignes par colonnes spécifiées (dans ce cas, saleprice
et saledate
) et élimine les lignes en double. La requête suivante permettra d'obtenir le résultat souhaité :
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 ) T ON S.saleprice=T.saleprice AND s.saledate=T.saledate )
Cette requête identifie les lignes de ventes uniques en fonction de saleprice
et saledate
et met à jour leur statut sur « ACTIVE ». La sous-requête utilise les clauses GROUP BY
et HAVING
pour sélectionner des combinaisons uniques de saleprice
et saledate
.
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!

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Réduisez l'utilisation de la mémoire MySQL dans Docker

Comment modifier une table dans MySQL en utilisant l'instruction ALTER TABLE?

Comment résoudre le problème de MySQL ne peut pas ouvrir la bibliothèque partagée

Exécutez MySQL dans Linux (avec / sans conteneur Podman avec phpmyadmin)

Exécuter plusieurs versions MySQL sur macOS: un guide étape par étape

Comment sécuriser MySQL contre les vulnérabilités communes (injection SQL, attaques par force brute)?

Comment configurer le cryptage SSL / TLS pour les connexions MySQL?
