MYSQL: как удалить строки базы данных SIMILAR на основе имени пользователя и отметки времени - PullRequest
0 голосов
/ 07 февраля 2020

У меня есть таблица базы данных, которую я использую для регистрации. Я хотел бы выполнить поиск в таблице, чтобы найти все записи с определенным действием в один и тот же день одним и тем же пользователем и оставить только одну из них.

Названия столбцов, которые, по моему мнению, необходимо использовать, являются следующими: "action_action" - где искомое действие - «Ежедневный доступ к веб-сайту» «user_email» - Поиск того же пользователя в тот же день «activity_timestamp» - где я хочу игнорировать время и просто проверить, было ли действие в тот же день

1 Ответ

0 голосов
/ 07 февраля 2020

Если вы ищете оператор удаления, вот один из способов сделать это в MySQL:

delete t
from mytable t
inner join mytable t1
    on  t1.user_email = t.user_email
    and t1.activity_action = t.activity_action
    and date(t1.activity_timestamp) = date(t.activity_timestamp)
    and t1.activity_timestamp < t.activity_timestamp
where t.activity_action =  'Daily Website Access'

Это удаляет записи, которые имеют искомый activity_action и для которых другая запись с то же самое действие и электронная почта, которые произошли в тот же день и чья временная метка меньше. Другими словами, это удаляет дубликаты пар действий / пользователя / день, сохраняя при этом самые ранние.

...