Различные вопросы по PHP и MySQL

242K
.
Доброго времени суток. Столкнулся с такой проблемой. Есть база размером в 3,5 мегабайт, примерно 16000 записей, при этом некоторые записи являются так сказать дублями, то есть повторяются но у всех записей свой уникальный ИД и относятся эти записи к разным категориям. Как можно удалить из базы эти дубли?
.
человек И пароход
Pistolero, можно, какие столбцы в таблице ? напиши все
.
Crack, Вот запрос создания таблицы
CREATE TABLE IF NOT EXISTS `fact` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `text` text NOT NULL,
  `likes` int(11) NOT NULL DEFAULT '0',
  `time` int(30) NOT NULL,
  `id_category` int(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
.
человек И пароход
Pistolero, Время добавления дубликатов скорей всего разное поэтому сравнивать будем по тексту что не хорошо но за неимением лучшего варианта ...

mysql_query("DELETE `fact`.* FROM `fact` AS `fact`
    LEFT JOIN (SELECT `id` FROM `fact` GROUP BY `text`) AS `t2` 
        ON `fact`.`id` = `t2`.`id`
    WHERE `t2`.`id` IS NULL ");


Каждая запись останется только в одном экземпляре.
Также можно оставить либо первую добавленную либо последнюю запись (min(), max()).
Конкретно в запросе все зависит от group by.

Проверь все на бекапе !
.
Crack, Попробовал выполнить запрос на локалке , выдало ошибку
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '"' at line 4
.
человек И пароход
Pistolero, В phpMyAdmin вставлять только то что в кавычках
.
Crack, Да, эт я тупонул, вроде сработало
Удалено 9694 строки. (Запрос занял 5.9993 сек.)
Офигеть сколько дублей
.
Crack, Спасибо, все получилось, дублей больше нет.
.
человек И пароход
Pistolero, пожалуйста
.
Pistolero
Помогите пожалуйста вырезать анонс статьи и кто добавил, чтоб осталось только название, картинка и рейтинг.
* (+/-)
Всего: 7969