Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Memadam Baris Pendua dengan Cekap dalam Jadual MySQL?
Bagaimana untuk memadamkan baris pendua dalam jadual MySQL
Dalam pengurusan pangkalan data, menghapuskan data pendua adalah tugas biasa. Dalam MySQL, ini boleh dicapai menggunakan arahan DELETE.
Berikut ialah jadual sampel:
<code class="language-sql">CREATE TABLE names ( id INT NOT NULL AUTO_INCREMENT, name VARCHAR(255) NOT NULL, PRIMARY KEY (id) );</code>
Andaikan jadual mengandungi pendua:
<code class="language-sql">INSERT INTO names (name) VALUES ('google'); INSERT INTO names (name) VALUES ('yahoo'); INSERT INTO names (name) VALUES ('msn'); INSERT INTO names (name) VALUES ('google'); INSERT INTO names (name) VALUES ('google'); INSERT INTO names (name) VALUES ('yahoo'); SELECT * FROM names;</code>
Untuk mengalih keluar semua baris pendua (simpan baris dengan ID terkecil), gunakan pertanyaan berikut:
<code class="language-sql">DELETE n1 FROM names n1, names n2 WHERE n1.id > n2.id AND n1.name = n2.name;</code>
Sebagai alternatif, untuk mengekalkan baris dengan ID terbesar, gunakan pertanyaan berikut:
<code class="language-sql">DELETE n1 FROM names n1, names n2 WHERE n1.id < n2.id AND n1.name = n2.name;</code>
Amaran: Pastikan anda menyandarkan jadual anda sebelum melaksanakan sebarang pertanyaan pemadaman untuk mengelakkan kehilangan data secara tidak sengaja.
Untuk meja besar, disyorkan untuk menggunakan kaedah INSERT dan DISTINCT yang lebih pantas:
```sql BUAT JADUAL SEMENTARA temp_names PILIH id DISTINCT, nama DARIPADA nama; POTONG nama JADUAL; MASUKKAN KE DALAM nama (id, nama) PILIH id, nama DARIPADA nama_tempoh; DROP TABLE temp_names; ```Atas ialah kandungan terperinci Bagaimana untuk Memadam Baris Pendua dengan Cekap dalam Jadual MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!