Что нового

Как найти дублирующиеся строки в файле?

La2Angel

Новичок
Сообщения
156
Репутация
1
Извините, если тема уже была создана, поиск не работает на сайте ( покрайней мере я не могу ничего найти, пишет: The database value you're trying to insert does not exist: id_search)

Проблема в следующем: Есть sql файл, в базу залить нельзя т.к. имеет дубли. Дублируются всего лишь 2 столбец. Как можно отловить его ? пример вот:

INSERT INTO `droplist` VALUES ('18001', '57', '918', '1834', '0', '700000', '0');
INSERT INTO `droplist` VALUES ('18001', '57', '1', '1', '0', '200000', '1');
INSERT INTO `droplist` VALUES ('18001', '1864', '1', '1', '0', '166666', '2');

Дублируются всего лишь эти 2 числа. Требуется найти дубли и удалить одну строку.
Так же, числа все разные, то есть не только 18001 57, они могут быть разные, но продублированы в след строке как 18090 57, 20345 643 и т.д.

P.S. в ручную не предлогать.... т.к. там 32 тыс. строк...
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
La2Angel а какую строку именно?можно ведь удалить все дубли и оставить да не ту :smile:
 
Автор
L

La2Angel

Новичок
Сообщения
156
Репутация
1
Щас постараюсь обьяснить. Это база от игры для создания таблиц в MySql, выпад вещей с монстров.
Вот пример строки:
INSERT INTO `droplist` VALUES ('18001', '2397', '1', '1', '0', '12', '1');
18001 - Это индентификатор монстра.
2397 - это индентификатор вещи, которая должна выпасть.
1 - это минимальное кол-во.
1 - максимальное кол-во.
0 - Шанс достать магией вещь.
12 - шанс, при котором выпадет вещь.
1 - группа.

Поэтому когда 2 строки с 1 и тем же индентификаторо вещи, идет конфликт.
Если вы спрашивали какую строку удалить:
Эту INSERT INTO `droplist` VALUES ('18001', '2397', '1', '1', '0', '12', '1');
Или эту INSERT INTO `droplist` VALUES ('18001', '2397', '1', '1', '1', '56', '3');
Не важно, хоть 1 строку удалить, хоть 2 ) главное дубль убить её, а одну из них оставить.
 

---Zak---

Скриптер
Сообщения
455
Репутация
120
Возможно проще будет изменить SQL запрос ?

http://www.spravkaweb.ru/mysql/sql/insert/ - почитай о параметре "IGNORE":
Если в команде INSERT указано ключевое слово IGNORE, то вставка записей не прерывается, а строки с дублирующими значениями просто не вставляются.
 
Верх