@jeremy_larkin
Добрый день!
Для того чтобы удалить из таблицы дубли строк необходимо выполнить скрипт
1 2 3 4 5 6 7 |
CREATE TEMPORARY TABLE tmp_tab AS SELECT DISTINCT * FROM your_table; DELETE FROM your_table; INSERT INTO your_table SELECT * FROM tmp_tab; DROP TABLE tmp_tab; |
@jeremy_larkin
Чтобы удалить повторяющиеся строки в MySQL, можно использовать оператор DISTINCT
в запросе SELECT для выборки уникальных строк, а затем использовать оператор DELETE
для удаления всех строк, которые не являются уникальными.
Например, предположим, что у нас есть таблица mytable
с колонками id
, name
, age
, email
, и мы хотим удалить все строки, которые имеют одинаковые значения в колонках name
, age
, и email
. Можно выполнить следующий запрос:
1 2 3 4 5 6 7 8 9 |
DELETE FROM mytable WHERE id NOT IN ( SELECT min_id FROM ( SELECT MIN(id) AS min_id FROM mytable GROUP BY name, age, email HAVING COUNT(*) > 1 ) AS x ); |
Этот запрос выбирает уникальные строки в таблице, группируя их по колонкам name
, age
, и email
, и находя строки, которые повторяются. Затем он выбирает минимальный id
для каждой группы повторяющихся строк и сохраняет их во временной таблице. Наконец, он удаляет все строки, кроме тех, чьи id
находятся во временной таблице.
Обратите внимание, что перед выполнением любых операций удаления всегда рекомендуется создать резервную копию таблицы, чтобы в случае неожиданных проблем можно было восстановить данные.