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!