Si vous souhaitez supprimer la ville en double avec le même state_id
(enregistrements en double), vous pouvez le faire en les regroupant par city
et state_id
et en utilisant MIN
ou MAX
fonction :
Avant de supprimer la requête, votre table ressemblait à
| 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 |
Vous pouvez utiliser la requête suivante pour supprimer les enregistrements en double :
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;
Après avoir appliqué la requête ci-dessus, votre tableau ressemblera à :
| 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 |
Voir ce SQLFiddle
Pour plus d'informations, voir DELETE
Syntaxe de MySQL.