Мускуль и повторяющиеся записи.

Тема в разделе "Базы данных", создана пользователем Deller, 8 дек 2008.

Статус темы:
Закрыта.
Модераторы: latteo
  1. Deller

    Deller Создатель

    Регистр.:
    24 фев 2008
    Сообщения:
    34
    Симпатии:
    16
    Дано: табличка из двух столбцов, в ней есть повторяющиеся записи т.е. например есть строка со значениями 6 и 9 в первом и втором столбце соответственно. И ета запись повторяется несколько раз. Требуется удалить повторяющиеся записи посредством запроса мускуля. Это реально? Еси да не подскажет ли кто либо как, бу благодарен. ЗЫ на пых не ссылаться скрипт на пыхе написать для удаления могу но меня интересует решение задачи именно при помощи mysql
     
  2. PHP_Master

    PHP_Master

    Регистр.:
    3 фев 2008
    Сообщения:
    2.647
    Симпатии:
    590
    Через объединение таблицы с собой.
    Допустим есть поля id и data:
    Код:
    DELETE table FROM table as t1, table as t2 WHERE t1.data = t2.data AND t1.id > t2.id
    Разумеется, id должен быть уникальным.
     
  3. puzer

    puzer Создатель

    Регистр.:
    5 июл 2008
    Сообщения:
    14
    Симпатии:
    4
    Можно, используя временную таблицу:

    insert into tmp(c1,c2)
    SELECT DISTINCT c1,c2
    FROM t1;
    delete from t1;
    insert into t1(c1,c2)
    SELECT c1,c2
    FROM tmp;

    Если полей больше чем два, то можно на с1,с2 в tmp повесить уникальный индекс
    и делать INSERT IGNORE без DISTINCT уже.
     
  4. Deller

    Deller Создатель

    Регистр.:
    24 фев 2008
    Сообщения:
    34
    Симпатии:
    16
    В том то и дело id уникальных там нет.

    puzer а вот ваш метод должен сработать. Спасибо попробую.
     
  5. SeoProger

    SeoProger Писатель

    Регистр.:
    29 ноя 2008
    Сообщения:
    9
    Симпатии:
    3
    Еще можно при помощи ALTER INGNORE TABLE создать нужный индекс, при этом все копии записей удалятся.
     
  6. diexard

    diexard Писатель

    Регистр.:
    22 мар 2009
    Сообщения:
    7
    Симпатии:
    1
    составной ключ вам поможет.
     
  7. AndreyD2

    AndreyD2

    Регистр.:
    21 окт 2008
    Сообщения:
    194
    Симпатии:
    67
    Создать поле ID - Уникальный
    и в курсоре удалить все одинаковые записи с ID больше текущего
     
Статус темы:
Закрыта.