0 / 0 / 0
Регистрация: 09.08.2010
Сообщений: 10
|
|
1 | |
Удаление повторяющихся записей05.01.2011, 12:35. Показов 13404. Ответов 6
Метки нет (Все метки)
У меня есть табличка :
CREATE TABLE `SALES` ( `ID` int(11) NOT NULL auto_increment, `PHONE` char(10) default NULL, `VIN` char(20) default NULL, `GOD` char(10) default NULL, `FIO` char(110) default NULL, `ADRESS` text, `FDOC` char(50) default NULL, `OPR` varchar(100) default NULL, `DATEO` char(10) default NULL, PRIMARY KEY (`ID`), KEY `vin_ind` (`VIN`), KEY `phone_ind` (`PHONE`), FULLTEXT KEY `FIO` (`FIO`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=10832764 ; Мне необходимо удалить запсиси(дубликаты) имеющие одинаковые значения по 3-м полям: PHONE, VIN, FIO. Для чего я выполняю запрос: ALTER IGNORE TABLE SALES ADD UNIQUE INDEX(PHONE, VIN, FIO); Появляется уникальный индекс по 3-м полям, но строки не удаляются. Помогите понять, что не так я делаю или может быть есть какой нибудь другой способ? база огромная весит 5gb все это мне нужно что б уменьшить её размер.
0
|
05.01.2011, 12:35 | |
Ответы с готовыми решениями:
6
Удаление повторяющихся записей Удаление повторяющихся записей Удаление повторяющихся записей по условию Поиск повторяющихся записей в БД |
134 / 119 / 0
Регистрация: 30.06.2010
Сообщений: 221
|
|
05.01.2011, 13:57 | 2 |
Записи удаляются командой DELETE.
Например у Вас в таблице есть три одинаковые записи(по Вашему критерию) удалять надо все три или только две? Если только две, то по какому критерию определять кого амнистировать, а кого казнить?
0
|
0 / 0 / 0
Регистрация: 09.08.2010
Сообщений: 10
|
|
05.01.2011, 15:04 [ТС] | 3 |
нужно оставить любую запись из трех. Без разницы какую.
0
|
134 / 119 / 0
Регистрация: 30.06.2010
Сообщений: 221
|
||||||
05.01.2011, 16:12 | 4 | |||||
Попробуйте так. Не претендую на оптимальность, но должно работать. Оставляем запись с минимальным ID.
2
|
0 / 0 / 0
Регистрация: 09.08.2010
Сообщений: 10
|
|
06.01.2011, 07:42 [ТС] | 5 |
Скрипт очень интересный спасибо. Только вот выдает ошибку:
#1064 - 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 'count(*) AS nn, min(ID) AS ID FROM SALES' at line 5 Версия сервера: 5.0.91-log Добавлено через 13 минут Не нравятся слова count и min посоветуете что нибудь?
0
|
134 / 119 / 0
Регистрация: 30.06.2010
Сообщений: 221
|
||||||
06.01.2011, 16:17 | 6 | |||||
День добрый.
У меня, к сожалению, нет в наличии MySQL v.5.0.91. Поэтому я проверил на версиях 4.1.22, 5.0.87 и 5.1.40 - все работает, никакой ошибки в синтаксисе нет. Может у Вас какие-то специфические настройки сервера? Добавлено через 2 часа 28 минут Либо попробуйте так:
0
|
0 / 0 / 0
Регистрация: 09.08.2010
Сообщений: 10
|
|
07.01.2011, 00:14 [ТС] | 7 |
Все получилось... огромное спасибо
0
|
07.01.2011, 00:14 | |
07.01.2011, 00:14 | |
Помогаю со студенческими работами здесь
7
Как ограничить количество повторяющихся записей в таблице? Удаление повторяющихся строк Удаление повторяющихся данных из таблицы Исключение повторяющихся записей в выборке Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |