Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Padamkan Baris Pendua dalam MySQL Tanpa Menerima Ralat?

Bagaimanakah Saya Boleh Padamkan Baris Pendua dalam MySQL Tanpa Menerima Ralat?

Linda Hamilton
Lepaskan: 2024-11-04 03:02:29
asal
909 orang telah melayarinya

How Can I Delete Duplicate Rows in MySQL Without Receiving an Error?

Memadamkan Baris Pendua dalam MySQL: Trik Jadual Unik

Berurusan dengan rekod pendua dalam pangkalan data boleh menjadi titik kesakitan yang biasa. Dalam MySQL, pemadaman pendua ini boleh dicapai melalui satu siri langkah. Mari kita jalani senario tertentu dan atasi kemungkinan perangkap di sepanjang jalan.

Andaikan kita mempunyai jadual bernama "pekerja" dengan medan 'empid', 'empname' dan 'empssn'. Untuk mengenal pasti rekod pendua, kami melaksanakan pertanyaan untuk mengira kejadian setiap 'empssn':

<code class="sql">SELECT COUNT(empssn), empssn FROM employee GROUP BY empssn HAVING COUNT(empssn) > 1</code>
Salin selepas log masuk

Pertanyaan ini akan mengembalikan baris yang menunjukkan 'empssn' mana yang muncul lebih daripada sekali.

Seterusnya, kami cuba memadamkan rekod pendua menggunakan pertanyaan berikut:

<code class="sql">DELETE FROM employee WHERE (empid, empssn) NOT IN (SELECT MIN(empid), empssn FROM employee GROUP BY empssn);</code>
Salin selepas log masuk

Malangnya, pertanyaan ini mungkin menghadapi ralat: "Anda tidak boleh menentukan 'pekerja' jadual sasaran untuk kemas kini dalam klausa FROM."

Untuk memintas ralat ini, kami boleh menggunakan teknik yang melibatkan pembalut pertanyaan dalam dalam jadual terbitan:

<code class="sql">DELETE FROM employee WHERE (empid, empssn) NOT IN (SELECT empid, empssn FROM (SELECT MIN(empid) AS empid, empssn FROM employee GROUP BY empssn) X);</code>
Salin selepas log masuk

Jadual terbitan ini berkesan bertindak sebagai jadual sementara, membolehkan kami merujuk sasaran jadual 'pekerja' dalam kedua-dua pernyataan DELETE dan klausa FROM.

Dengan melaksanakan helah ini, kami boleh berjaya memadamkan rekod pendua daripada jadual 'pekerja'. Penyelesaian ini bukan sahaja menyelesaikan halangan teknikal tetapi juga memberikan pemahaman yang lebih mendalam tentang manipulasi pangkalan data dalam MySQL.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Padamkan Baris Pendua dalam MySQL Tanpa Menerima Ralat?. 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