Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




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, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
13453



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |