Maison >base de données >tutoriel mysql >Comment supprimer toutes les lignes sauf les N premières d'une table de base de données SQL ?
Requête SQL pour supprimer toutes les lignes sauf les n premières d'une table de base de données
Dans de nombreux scénarios, il devient nécessaire de supprimer toutes les données d'une table de base de données. table de base de données, à l'exception des n premières lignes. Cette opération nécessite une requête soigneusement conçue pour garantir que seul le nombre de lignes souhaité est conservé.
Approche recommandée :
Le moyen le plus efficace de tout supprimer sauf le haut n lignes d'une table en SQL consiste à exécuter une requête qui sélectionne les lignes souhaitées, puis utilise l'instruction DELETE pour supprimer les lignes restantes. Le modèle de requête suivant illustre cette approche :
DELETE FROM TableName WHERE ID NOT IN ( SELECT DISTINCT TOP n ID FROM TableName ORDER BY ID )
Avantages :
Exemple :
Considérons un tableau nommé "Ventes" avec les données suivantes :
ID | Name | Amount |
---|---|---|
1 | John | 100 |
2 | Mary | 200 |
3 | Bob | 300 |
4 | Ann | 400 |
Pour supprimer tout sauf les 2 premières lignes de ce tableau, nous utiliserions la requête suivante :
DELETE FROM Sales WHERE ID NOT IN ( SELECT DISTINCT TOP 2 ID FROM Sales ORDER BY ID )
Après avoir exécuté cette requête, le tableau "Ventes" contiendrait uniquement les lignes suivantes :
ID | Name | Amount |
---|---|---|
1 | John | 100 |
2 | Mary | 200 |
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!