Se desideri rimuovere città duplicate con lo stesso state_id
(record duplicati), puoi farlo raggruppandoli per city
e state_id
e usando MIN
o MAX
funzione:
Prima di eliminare la query, la tua tabella era simile a
| 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 |
Puoi utilizzare la seguente query per rimuovere i record duplicati:
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;
Dopo aver applicato la query precedente, la tua tabella apparirà come:
| 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 |
Guarda questo SQLFiddle
Per ulteriori informazioni, vedere DELETE
Sintassi di MySQL.