MySQL удалить из запроса, где два столбца дублируются - PullRequest
0 голосов
/ 04 июля 2011

Что я хочу сделать, так это удалить все дубликаты, если столбец A и столбец B повторяются. Например:

A      B      C   
-----------------
Apple  Pear   11  
Apple  Pear   12  
Apple  Pear   13  
Orange Apple  22  
Orange Beer   21  
Cinder Punch  30  
Cinder Punch  31  
Cinder Punch  32  

Результатом будет:

A      B      C   
-----------------
Apple  Pear   11  
Orange Apple  22  
Orange Beer   21  
Cinder Punch  30  

Ответы [ 2 ]

3 голосов
/ 04 июля 2011

Шаг 1. Переместите недопустимые копии (уникальные кортежи) во временную таблицу

CREATE TABLE new_table as
SELECT * FROM old_table WHERE 1 GROUP BY [column to remove duplicates by];

ЗДЕСЬ, [столбец для удаления дубликатов с помощью] = имена столбцов, разделенные "КОММА", поэтому в вашем случае A, B

Шаг 2: удалить удалить старую таблицу Нам больше не нужна таблица со всеми повторяющимися записями, поэтому оставьте ее!

DROP TABLE old_table;

Шаг 3: переименуйте new_table в имя old_table

RENAME TABLE new_table TO old_table;
0 голосов
/ 04 июля 2011

Вы можете сделать следующее, чтобы достичь этого

delete from table_name
where rowid not in (select min(rowid) from table_name group by a,b)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...