Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Memadam Semua kecuali Baris N Teratas daripada Jadual Pangkalan Data SQL?

Bagaimana untuk Memadam Semua kecuali Baris N Teratas daripada Jadual Pangkalan Data SQL?

Susan Sarandon
Susan Sarandonasal
2024-12-29 04:22:09806semak imbas

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

Pertanyaan SQL untuk Memadam Semua kecuali Baris Teratas daripada Jadual Pangkalan Data

Dalam banyak senario, ia menjadi perlu untuk mengalih keluar semua data daripada jadual pangkalan data kecuali untuk n baris atas. Operasi ini memerlukan pertanyaan yang dibuat dengan teliti untuk memastikan bahawa hanya bilangan baris yang dikehendaki dikekalkan.

Pendekatan Disyorkan:

Cara paling berkesan untuk memadam semua kecuali bahagian atas n baris daripada jadual dalam SQL adalah untuk melaksanakan pertanyaan yang memilih baris yang dikehendaki dan kemudian menggunakan pernyataan DELETE untuk mengalih keluar baki barisan. Templat pertanyaan berikut menunjukkan pendekatan ini:

DELETE FROM TableName WHERE ID NOT IN (
    SELECT DISTINCT TOP n ID
    FROM TableName
    ORDER BY ID
)

Kelebihan:

  • Kaedah ini memastikan bahawa hanya n baris atas dikekalkan dalam jadual.
  • Ia agak mudah untuk dilaksanakan dan boleh dilaksanakan cekap.

Contoh:

Pertimbangkan jadual bernama "Jualan" dengan data berikut:

ID Name Amount
1 John 100
2 Mary 200
3 Bob 300
4 Ann 400

Untuk memadam semua kecuali 2 baris teratas daripada jadual ini, kami akan menggunakan pertanyaan berikut:

DELETE FROM Sales WHERE ID NOT IN (
    SELECT DISTINCT TOP 2 ID
    FROM Sales
    ORDER BY ID
)

Selepas melaksanakan pertanyaan ini, jadual "Jualan" akan mengandungi hanya baris berikut:

ID Name Amount
1 John 100
2 Mary 200

Atas ialah kandungan terperinci Bagaimana untuk Memadam Semua kecuali Baris N Teratas daripada Jadual Pangkalan Data SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn