2013-06-25 3 views
-5

У меня есть таблица под названием «test», и у нее есть 4 столбца, идентификатор, имя, адрес, телефон. Существует так много повторяющихся данных. То, что я хочу, это запрос, чтобы добавить номера телефонов в кулачную строку с помощью '/' и удалить другие строки. посмотрите изображение. enter image description hereMYSQL Удалить дублирование

+1

Если есть имя/адрес/идентификатор, который может иметь несколько телефонов, вы должны разделить на 2 таблицы, определить правильные ключи и избежать дубликатов автоматически – DanFromGermany

+1

Это не источник для людей, которые могут дать вам код. Что вы пробовали? –

+1

При создании таблицы вы должны были определить 'UNIQUE KEY'. Поскольку вы этого не сделали, ваше наказание - это новость о том, что такая вещь может быть решена только вручную. –

ответ

-1

Быстрых попробовать.

Вы можете сделать это, чтобы добавить все телефонные номера первой записи (разделенные запятой, вы можете добавить PARM изменить это на слэш, но вместо этого будет еще хуже идея)

UPDATE test a 
INNER JOIN (SELECT name, address, GROUP_CONCAT(phone) AS AllPhone, MIN(id) AS MinId FROM test GROUP BY name, address) b 
ON a.name = b.name 
AND a.address = b.address 
AND a.id = b.MinId 
SET a.phone = b.AllPhone 

Затем удалите другое что-то вроде этого

DELETE a 
FROM test a 
LEFT JOIN (SELECT name, address, MIN(id) AS MinId FROM test GROUP BY name, address) b 
ON a.id = b.MinId 
WHERE b.MinId IS NULL 

Обратите внимание, что это собирается дать вам разделители список телефонных номеров для имени/адреса, который является основной головной болью иметь дело в будущем, а также знак плохо разработанная база данных.

+0

Положите запрос удивительно. большое спасибо :) – user2160335

+0

команда удаления не работает. ничего не происходит, кроме индикатора, оживляющего в php myadmin. – user2160335

+0

Просто сбил тестовый стол и попробовал его для себя, и он работает. Может показаться неплохо занять некоторое время в зависимости от индексов. – Kickstart

-2

Для удаления других данных, использовать интерфейс PHPMuAdmin, и вы можете удалить их или создать страницу с администратором, где вы можете динамически изменять и удалять данные в вашей базе данных