Rumah >pangkalan data >tutorial mysql >Terangkan bagaimana mysql memadam data pendua
Artikel ini akan memperkenalkan kepada anda cara memadam data pendua dalam MySQL. Ia mempunyai nilai rujukan tertentu Rakan-rakan yang memerlukan boleh merujuk kepadanya.
sku harus mempunyai satu sku_id yang sepadan dengan sekeping data berat yang unik Disebabkan ralat program, data berlebihan yang sama muncul. Simpan satu sahaja dan padamkan yang lain.
字段 | 说明 |
---|---|
id | 自增 |
sku_id | sku_id标识 |
weight | 重量 |
Anggap nama jadual: berat
Soal senarai dengan data pendua
SELECT sku_id,COUNT(id) FROM weight GROUP BY sku_id HAVING COUNT(sku_id) > 1
Soal setiap id terkecil dalam data pendua
SELECT min(id) FROM weight GROUP BY sku_id HAVING COUNT(sku_id) > 1
Soal data lain yang mengalih keluar id terkecil daripada data pendua
SELECT id,sku_id FROM weight WHERE sku_id IN( SELECT sku_id FROM weight GROUP BY sku_id HAVING COUNT(sku_id) > 1)AND id NOT IN( SELECT MIN(id) FROM weight GROUP BY sku_id HAVING COUNT(sku_id) > 1)
Padamkan data lain dengan ID minimum data pendua dialih keluar
DELETE FROM weight WHERE sku_id IN( SELECT sku_id FROM weight GROUP BY sku_id HAVING COUNT(sku_id) > 1)AND id NOT IN( SELECT MIN(id) FROM weight GROUP BY sku_id HAVING COUNT(sku_id) > 1)
Sebabnya: semasa memadamkan jadual ini, jadual ini disoal pada masa yang sama dan jadual ini disoal pada masa yang sama masa kerana jadual ini dipadamkan, yang boleh difahami untuk kebuntuan. MySQL tidak menyokong operasi pemadaman dan pertanyaan jadual yang sama ini
错误代码: 1093You can't specify target table 'weight' for update in FROM clause
Penyelesaian adalah seperti berikut: tanya data yang akan dipadamkan sebagai jadual pihak ketiga, dan kemudian tapis dan padamkannya.
DELETE FROM `weight` WHERE sku_id IN( SELECT sku_id FROM (SELECT sku_id FROM `weight` GROUP BY sku_id HAVING COUNT(sku_id) > 1) table1)AND id NOT IN ( SELECT id FROM (SELECT MIN(id) AS id FROM `weight` GROUP BY sku_id HAVING COUNT(sku_id) > 1) table2)
Kemas kini juga beroperasi pada prinsip yang sama seperti di atas.
Pembelajaran yang disyorkan: "tutorial video mysql"
Atas ialah kandungan terperinci Terangkan bagaimana mysql memadam data pendua. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!