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

Добрый вечер. Наверняка у кого-то есть готовое решение для mysql или php для удаления дублей строк. Либо из txt, либо из mysql. Необходимо удалить все дубли. То есть не оставлять одинаковых строк вообще. Например, есть 2 одинаковые строки. Надо удалить 2 строки, а не одну. Нашел кучу решений удаления дублей, но они всегда оставляют одну строку из многих. Я написал решение, но производительнось у него отвратительная.
  • Вопрос задан
  • 123 просмотра
Решения вопроса 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'

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

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

Войти через центр авторизации
Похожие вопросы
SaveTime Москва
от 160 000 руб.
SaveTime Москва
от 100 000 руб.
Tilda Publishing Москва
от 140 000 до 180 000 руб.
15 нояб. 2019, в 15:24
3000 руб./за проект
15 нояб. 2019, в 15:12
2000 руб./за проект
15 нояб. 2019, в 15:11
15000 руб./за проект