Memadamkan Semua kecuali Atas n Baris dalam Jadual SQL
Selalunya, kita menghadapi senario di mana kita perlu mengekalkan hanya bilangan tertentu atas baris daripada jadual pangkalan data sambil memadam yang lain. Terdapat cara yang cekap untuk mencapai ini menggunakan SQL.
Penyelesaian:
Salah satu kaedah paling berkesan untuk memadam semua kecuali baris teratas daripada jadual ialah memanfaatkan subquery. Pertanyaan berikut menunjukkan cara:
DELETE FROM Table WHERE ID NOT IN (SELECT TOP 10 ID FROM Table)
Pertanyaan ini mengenal pasti ID bagi n baris atas berdasarkan susunan menurun lajur ID menggunakan kata kunci TOP. Ia kemudian mengecualikan baris ini daripada pemadaman dengan membandingkan ID dengan hasil subkueri.
Pertimbangan Prestasi:
Adalah penting untuk mengambil perhatian potensi prestasi yang dicecah dengan menggunakan pendekatan ini. Chris telah menyerlahkan bahawa pertanyaan 10 TOP akan dilaksanakan untuk setiap baris yang dipadamkan, yang boleh menjadi tidak cekap jika terdapat bilangan baris yang banyak.
Untuk operasi sekali, ini mungkin tidak menimbulkan isu yang ketara. Walau bagaimanapun, untuk pelaksanaan yang kerap, terdapat pengoptimuman alternatif untuk dipertimbangkan.
Ingat, pendekatan dan pengoptimuman khusus mungkin berbeza-beza bergantung pada sistem pengurusan pangkalan data dan ciri data asas.
Atas ialah kandungan terperinci Bagaimana dengan Cekap Memadam Semua Tetapi Baris N Teratas dalam Jadual SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!