У меня есть много телефонных номеров, которые дублируются в поле telephone
. Как это сделать с помощью SQL?Удаление дубликатов
Я хочу удалить записи, которые являются дубликатами.
Я также хочу знать, сколько дубликатов?
Благодаря
У меня есть много телефонных номеров, которые дублируются в поле telephone
. Как это сделать с помощью SQL?Удаление дубликатов
Я хочу удалить записи, которые являются дубликатами.
Я также хочу знать, сколько дубликатов?
Благодаря
Попробуйте это:
DELETE FROM phonenumbers WHERE telephone = "[phone number here]" AND id NOT IN (SELECT id FROM phonenumbers WHERE telephone = "[phone number here]" LIMIT 1)
Это удалит все записи с этим номером телефона, за исключением первого один
Примечания, это если у вас есть уникальный идентификатор ID
в вашем Таблица. (И ваша имя_таблица является phonenumbers
Изменить что в вашу реальную имя_таблицу
Этот запрос может помочь:..
DELETE `P`.*
FROM `phones` `P`
LEFT JOIN (
SELECT `telephone`, MIN(`id`) `ids`
FROM `phones`
GROUP BY `telephone`
) `TA` ON `P`.`id` = `TA`.`ids`
WHERE `TA`.`ids` IS NULL;
Пожалуйста, обратите внимание, чтобы изменить имена таблиц и имена полей в соответствии с вашей схемой Кроме того, выше, предполагает, что ваша таблица имеет первичный столбец, обозначенный как id
в приведенном выше запросе
логика:.
Преимущество с вышеуказанным запросом заключается в том, что он удалит все повторяющиеся записи за один снимок.
Для дублирующих подсчетов, вы можете сделать что-то вроде:
SELECT `telephone`, COUNT(1) `cnt`
FROM `phones`
GROUP BY `telephone`
HAVING COUNT(1) > 1
Надеется, что это помогает!
@ user791022, вы сделали попробуйте решение? Это сработало? – Abhay
Вот простой один, который копирует ваш стол на новый не хватает продублировать полей «телефонных»:
CREATE TABLE addrbook2
SELECT * FROM addrbook GROUP BY telephone
Затем можно удалить старую таблицу addrbook и переименовать новый addrbook2 в addrbook, если вы хотите.
Возможный дубликат http://stackoverflow.com/q/8567007/27535 или http://stackoverflow.com/q/8590010/27535 и многие другие – gbn
Должен ли использоваться только SQL? Не можете написать для этого немного кода? Это будет намного проще с кодом fuction –
Возможный дубликат [удалить дубликаты в базе данных mysql] (http://stackoverflow.com/questions/8793231/remove-duplicates-in-mysql-database) –