У меня есть таблица с людьми, которая содержит дубликаты людей с самого начала. К сожалению, иногда данные привязываются к одному или другому из дубликатов, поэтому я бы предпочел сохранить их, потому что эти записи не являются частью проблемы, удаление их может вызвать больше проблем.
Кто-то обновил код создания пользователя 2 дня назад, что привело к появлению огромного количества дубликатов (буквально тысячи). Мне нужно удалить все дубликаты за последние 2 дня. Я не могу использовать «подход с уникальным ключом», потому что к старым дубликатам прикреплены данные (бронирование и т. Д.).
У кого-нибудь есть идеи, как решить такую проблему? Я явно хочу удалить дубликаты только за последние 2 дня, оставив по 1 копии каждого человека в таблице.
CREATE TABLE IF NOT EXISTS `people_copy` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`company_id` int(11) NOT NULL,
`firstname` char(255) COLLATE utf8_unicode_ci NOT NULL,
`lastname` char(255) COLLATE utf8_unicode_ci NOT NULL,
`email` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`mobile` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`birthdate` date DEFAULT NULL,
`birthplace` char(255) COLLATE utf8_unicode_ci NOT NULL,
`birth_country` char(255) COLLATE utf8_unicode_ci NOT NULL,
`blocked_from` date DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=42095 DEFAULT CHARSET=utf8
COLLATE=utf8_unicode_ci;
Проверка наличия дубликатов записей может быть завершена с помощью столбцов:
имя, фамилия, дата рождения, место рождения, страна рождения