За последние 24 часа нас посетили 111889 программистов и 5647 роботов. Сейчас ищут 2672 программиста ...

Отсеить неуникальные записи

Тема в разделе "MySQL", создана пользователем Maxer, 26 окт 2008.

  1. Maxer

    Maxer Активный пользователь

    С нами с:
    22 окт 2006
    Сообщения:
    93
    Симпатии:
    0
    Есть очень большая база MySQL в которой несколько тысяч дубликатов записей. Задача удалить дубликаты оставив все уникальные записи в единственном числе. Вопрос, как сделать это проще всего через SQL, не используя циклы php
     
  2. Sephiroth_Lukaw

    Sephiroth_Lukaw Активный пользователь

    С нами с:
    26 апр 2008
    Сообщения:
    62
    Симпатии:
    0
    Ни разу не пробовал...[sql]CREATE TABLE `temp_table` SELECT * FROM `table` GROUP BY `field`, `field2` HAVING COUNT(`field2`) >= 1[/sql]upd. Можно попробовать [sql]ALTER IGNORE TABLE `table` ADD UNIQUE (fieeld1, fiedl2)[/sql]
    Может ошибаюсь...или туплю..

    upd. http://lvm.converters.ru/node/280
     
  3. Mete0

    Mete0 Активный пользователь

    С нами с:
    18 дек 2006
    Сообщения:
    272
    Симпатии:
    0
    Адрес:
    Gatchina
    [sql]INSERT INTO `table_temp` (`field1`,`field2`,`field3`)
    SELECT DISTINCT `field1`,`field2`,`field3` FROM `table`[/sql]

    Можно так. Только надо сначала создать таблицу `table_temp`.
     
  4. Maxer

    Maxer Активный пользователь

    С нами с:
    22 окт 2006
    Сообщения:
    93
    Симпатии:
    0
    спасибо огромное, гениально, сработало. С меня пиво