Организация дублирования в MySQL - PullRequest
2 голосов
/ 02 декабря 2011

Предполагается, что это моя таблица:

email |  col1 |  col2
------+-------+------
a@a   |   1   |   0
a@a   |   0   |   1
b@b   |   0   |   1
c@c   |   1   |   0

Я пытаюсь обновить каждую строку, в которой в электронном письме содержится более одной записи.В приведенной выше таблице a @ a указан дважды с 1 в col1 и в следующей записи a 1 в col2.Я бы хотел одну запись для @ a с 1 в col1 и col2.и затем я могу удалить дубликаты впоследствии.

Затем мне нужно оставить таблицу, в которой для каждого письма существует только запись, и я могу затем выбрать 1 в столбце col1, col2 или в обоих.

Я попытался отсортировать эти данные с помощью группы по электронной почте, имея col1 = 1 и col2 = 1, но это не сработает (предположительно, это только фильтры по первой найденной записи, а не объединенное подмножество данных - имеет смысл)

Я уверен, что это легко, и у меня просто еще один день, любая помощь приветствуется.

Ответы [ 2 ]

3 голосов
/ 02 декабря 2011

поможет ли это:

select email, max(col1) as col1, max(col2) as col2 from table group by email
0 голосов
/ 02 декабря 2011
insert into table_new 
select email, max(col1), max(col2) 
from table_old
group by email 
...