Rumah >pangkalan data >tutorial mysql >Bagaimana untuk mengalih keluar Baris Pendua dalam MySQL Hanya Menggunakan Pertanyaan SQL?
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>
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!