Работа с уникальными данными — ключевая задача в SQL. Рассмотрим приемы поиска, удаления и предотвращения дубликатов:
1. Поиск дубликатов
Используйте группировку и фильтрацию, чтобы найти повторяющиеся записи:
SELECT email, COUNT(*) AS occurrences
FROM users
GROUP BY email
HAVING COUNT(*) > 1;
2. Удаление дубликатов
Удалите повторяющиеся строки, сохранив только одну:
DELETE FROM users
WHERE id NOT IN (
SELECT MIN(id)
FROM users
GROUP BY email
);
3. Предотвращение дубликатов
Обеспечьте уникальность данных с помощью уникальных индексов:
CREATE UNIQUE INDEX unique_email ON users(email);
Этот индекс автоматически предотвращает добавление дублирующихся email