Показать сообщение отдельно

  #6  
Старый 15.02.2010, 00:51
shell_c0de
Reservists Of Antichat - Level 6
Регистрация: 07.07.2009
Сообщений: 324
С нами: 8866466

Репутация: 564
По умолчанию

Код:
DELETE table1 FROM zzz as table1,zzz as table2 WHERE table1.x=table2.x AND table1.y=table2.y AND table1.unique_id>table2.unique_id
Где zzz - имя таблицы, x и y - поля

или так
Код:
CREATE TABLE tmp_ttt SELECT * FROM ttt GROUP BY pole, dublpole HAVING COUNT(dublpole) >= 1
Примерно так, принцип вроде понятен.
еще вариант
Код:
Удаления полных дубликатов записей через выполнение distinct select
--Создание копии таблицы без дубликатов во временной таблице
CREATE TEMPORARY TABLE bad_temp AS SELECT DISTINCT * FROM table_name;
--Удаление всех записей из старой таблицы
DELETE FROM table_name;
--Добавление записей без дублей
INSERT INTO table_name SELECT * FROM bad_temp;
--Удаление временной таблицы
DROP TABLE bad_temp;

Вариант с созданием временной таблицы:
CREATE TABLE tmpid SELECT MIN(ID) ID FROM table_name GROUP BY unique_key;
DELETE FROM table_name WHERE ID NOT IN (SELECT ID FROM tmpid);

Последний раз редактировалось shell_c0de; 15.02.2010 в 00:55..
 
Ответить с цитированием