







|
MySQL.RU - Webboard
Вернуться
Удаление уникальных записей. (tomka) 11/03/2004 - 12:48:30
Re: Удаление уникальных записей. (Alec) 11/03/2004 - 13:11:57
Re: ОЙ!!! наоборот :-)) (Alec) 11/03/2004 - 13:16:20
Re: Можно узнать, что за задача? (Marat_L) 11/03/2004 - 15:30:52
Re: Можно узнать, что за задача? (tomka) 13/03/2004 - 03:50:43
Re: Можно узнать, что за задача? (Marat_L) 15/03/2004 - 09:46:13
> Original message text:
> From: tomka - 11/03/2004 - 12:48:30
> Subject:Удаление уникальных записей.
> -----------------
> Собственно.. как удалить записи у которых некоторое поле уникально ?
>
From: Marat_L - 15/03/2004 - 09:46:13
Subject:Можно узнать, что за задача?
-----------------
##ПОСМОТРЕТЬ:
##MySQL < 4.1
SELECT COUNT(*) as cnt,поле_уникальности
FORM таблица
GROUP BY поле_уникальности
HAVING cnt>1;
##Затем на процедурном языке сформировать запрос вида
SELECT * FROM таблица WHERE поле_уникальности IN (...список значений из пред.запроса ...);
##MySQL = 4.1
CREATE TEMPORARY TABLE xxx
SELECT COUNT(*) as cnt,поле_уникальности
FORM таблица
GROUP BY поле_уникальности
HAVING cnt>1;
SELECT * FROM таблица WHERE поле_уникальности IN (SELECT поле_уникальности FORM xxx);
DROP TABLE xxx;
##УДАЛИТЬ:
##Если дублировано не только уникальное поле:
CREATE TEMPORARY TABLE xxx
SELECT DISTINCT *
FORM таблица;
TRUNCATE TABLE таблица;
INSERT INTO TABLE таблица SELECT * FROM xxx;
DROP TABLE xxx;
##Если дублировано только уникальное поле, но при этом безразлично какие записи удалять:
CREATE TEMPORARY TABLE xxx
SELECT max(поле1) AS поле1, max(поле2) AS поле2 ...
FORM таблица
GROUP BY поле_уникальности;
TRUNCATE TABLE таблица;
INSERT INTO TABLE таблица SELECT * FROM xxx;
DROP TABLE xxx;
##Если надо удалить конкретные записи, выбранные вручную, то для каждого случая
DELETE FROM таблица WHERE уникальное_условие
[Это сообщение - спам!]
Последние сообщения из форума
Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
13453
|
|