Rumah > pangkalan data > tutorial mysql > Bagaimana untuk mengalih keluar Baris Pendua dalam MySQL Hanya Menggunakan Pertanyaan SQL?

Bagaimana untuk mengalih keluar Baris Pendua dalam MySQL Hanya Menggunakan Pertanyaan SQL?

Mary-Kate Olsen
Lepaskan: 2025-01-24 02:15:09
asal
393 orang telah melayarinya

How to Remove Duplicate Rows in MySQL Using Only SQL Queries?

Alih keluar baris pendua dalam MySQL tanpa skrip luaran

Dalam sesetengah kes, anda mungkin perlu mengalih keluar baris pendua dalam jadual MySQL berdasarkan gabungan lajur tertentu. Yang berikut meneroka cara untuk mencapai ini hanya menggunakan pertanyaan SQL, mengelakkan skrip sebelah pelayan.

Latar belakang

Seperti yang dinyatakan dalam soalan awal, jadual mengandungi berbilang lajur, termasuk 'id', 'url', 'title', 'company' dan 'site_id'. Matlamatnya adalah untuk mengalih keluar baris yang 'title', 'company' dan 'site_id' mempunyai nilai yang sama.

Penyelesaian

Cara berkesan untuk mengalih keluar baris pendua adalah dengan menggunakan indeks UNIK pada tiga lajur ini. Sintaks untuk mencipta indeks sedemikian adalah seperti berikut:

<code class="language-sql">ALTER IGNORE TABLE jobs ADD UNIQUE INDEX idx_name (site_id, title, company);</code>
Salin selepas log masuk

Sila ambil perhatian kata kunci 'IGNORE' digunakan dalam penyata. Ini memberitahu MySQL untuk mengabaikan baris pendua apabila mencipta indeks. Ini bermakna baris pendua ini akan dialih keluar daripada jadual.

Faedah tambahan

Selain mengalih keluar baris pendua sedia ada, menambah indeks UNIK menghalang baris pendua daripada disisipkan pada masa hadapan. Sebarang percubaan untuk memasukkan baris di mana gabungan 'site_id', 'title' dan 'company' sudah wujud akan mengakibatkan ralat.

Nota:

Sila ambil perhatian bahawa ciri ini telah dialih keluar dalam MySQL 5.7 dan lebih baru. Oleh itu, penyelesaian ini tidak lagi berfungsi dengan versi MySQL ini.

Atas ialah kandungan terperinci Bagaimana untuk mengalih keluar Baris Pendua dalam MySQL Hanya Menggunakan Pertanyaan SQL?. 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