Как удалить дубли строк?

Добрый вечер. Наверняка у кого-то есть готовое решение для mysql или php для удаления дублей строк. Либо из txt, либо из mysql. Необходимо удалить все дубли. То есть не оставлять одинаковых строк вообще. Например, есть 2 одинаковые строки. Надо удалить 2 строки, а не одну. Нашел кучу решений удаления дублей, но они всегда оставляют одну строку из многих. Я написал решение, но производительнось у него отвратительная.
  • Вопрос задан
  • 127 просмотров
Решения вопроса 1
Пригласить эксперта
Ответы на вопрос 1
@immelnikoff
Изучаю БД
Либо из txt, либо из mysql. Необходимо удалить все дубли. То есть не оставлять одинаковых строк вообще.

В MySQL в рамках одной таблицы двух одинаковых строк не может быть по определению реляционного отношения.
Если имеются в виду дубли по множеству полей, то как вариант:
DELETE FROM 'table' WHERE concat_ws('', 'field1', 'field2') IN
(SELECT `a` FROM (SELECT concat_ws('', 'field1', 'field2') `a`
FROM 'table' GROUP BY 'field1', 'field2' HAVING count(*) > 1) 'x')

Однако, строки
... field1  |  field2 ...
    NULL    |  'ivanov'
    ''      |  'ivanov'

будут восприниматься как дубли друг друга и будут удалены обе.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы