Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Memadam Baris Pendua dengan Cekap dalam Jadual MySQL?

Bagaimana untuk Memadam Baris Pendua dengan Cekap dalam Jadual MySQL?

Mary-Kate Olsen
Lepaskan: 2025-01-23 13:43:08
asal
402 orang telah melayarinya

How to Efficiently Delete Duplicate Rows in a MySQL Table?

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan