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 ?

Comment supprimer toutes les lignes sauf les N premières d'une table de base de données SQL ?

Susan Sarandon
Libérer: 2024-12-29 04:22:09
original
843 Les gens l'ont consulté

How to Delete All but the Top N Rows from a SQL Database Table?

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
)
Copier après la connexion

Avantages :

  • Cette méthode garantit que seules les n premières lignes sont conservées dans le tableau.
  • Il est relativement simple à mettre en œuvre et peut être exécuté efficacement.

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
)
Copier après la connexion

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal