Als u dubbele stad met dezelfde state_id
. wilt verwijderen (records dupliceren), u kunt dat doen door ze te groeperen op city
en state_id
en gebruik MIN
of MAX
functie:
Voor de verwijderquery zag je tabel er zo uit
| ID | STATE_ID | CITY |
------------------------------
| 1 | 1 | city_one |
| 2 | 1 | city_two |
| 3 | 1 | city_one |
| 4 | 1 | city_two |
| 5 | 2 | city_one |
| 6 | 3 | city_three |
| 7 | 3 | city_one |
| 8 | 3 | city_three |
| 9 | 4 | city_four |
| 10 | 4 | city_five |
U kunt de volgende query gebruiken om dubbele records te verwijderen:
DELETE city_table
FROM city_table
LEFT JOIN
(SELECT MIN(id) AS IDs FROM city_table
GROUP BY city,state_id
)A
ON city_table.ID = A.IDs
WHERE A.ids IS NULL;
Na het toepassen van de bovenstaande zoekopdracht ziet uw tabel er als volgt uit:
| ID | STATE_ID | CITY |
------------------------------
| 1 | 1 | city_one |
| 2 | 1 | city_two |
| 5 | 2 | city_one |
| 6 | 3 | city_three |
| 7 | 3 | city_one |
| 9 | 4 | city_four |
| 10 | 4 | city_five |
Bekijk deze SQLFiddle
Zie voor meer informatie DELETE
Syntaxis van MySQL.