как удалить все записи с тем же адресом электронной почты, но сохранить последнюю по дате? форматом даты в MySQL является "0000-00-00". У меня есть следующий запрос:
delete from customer
where date not in (
select max(data)
from customer
group by email)
похоже, не работает.
и можете ли вы показать, как просто сохранить одну запись на основе ничего, поскольку мои записи не имеют id
.
Присоединитесь к подзапросу, который получает последнюю дату для каждого клиента.
DELETE c1 FROM customer AS c1
JOIN (SELECT email, MAX(date) AS maxdate
FROM customer
GROUP BY email) AS c2
ON c1.email = c2.email AND c1.date != c2.maxdate
ALTER TABLE customer ADD INDEX (email, date)