События в этот день
(даты, события, история)

Узнай про космос
(ввселенная, планеты, фазы луны)

Новые статьи:

Что такое психологические границы?


Dendy и Nintendo. История первой игровой приставки в россии.


Почему курсор (стрелка мыши) наклонена?


Как сегодня выглядит Выборг. Фото выборга


Холм Бирса.Карфаген.Тунис. Древний Рим. История.


Проблема с кодировкой текста в html, php, js, mysql. РЕШЕНИЕ.


как выглядели игровые автоматы и приставки в СССР (ФОТО)


Как выглядели собаки 100лет назад. До и после. фото.


притчи про поиск любови и счастья


Удаление дубликатов строк из таблицы MySQL


"Я бы вдул" Откуда пошло выражение?



“ Соединяй приятное с полезным (Гораций), но никогда не путай одно с другим.”

дед Мазай

Следующая цитата »

Это факт!


Первый в истории одеколон появился, как средство профилактики от чумы.

Следующий факт »

Ра оставил тебе послание!... (0о0)

Удаление дубликатов строк из таблицы MySQL



Теги: #статьи портала #Создание сайта (html,css,php,js)


дубликаты, похожие, похожие строки, дубликаты строк, удалить дубликаты строк, удалить похожие строки, избавиться, от дубликатов, от строк, удалить дублирующиеся строки, php, mysql, sql, phpmyadmin, избавление, удалить, удаление, повторы, повторяющиеся, строки, строка, данные, бд, db, база данных, таблица, таблицы,

Иногда после заполнения таблицы или импорта в неё разных строк бывает, что появляются похожие строки и данные, которые нужно удалить.
Для того, чтобы удалить похожие строки (дубликаты) и оставить одну нужную, используйте следующий mysql-запрос:

Вариант 1:
Выполняется в 4 запроса. Сначала запрос автоматически создает временную таблицу, очищает ее, заносит в нее id только уникальных записей и удаляем из основной таблицы записи с теми id, которые не попали во временную. (естественно, если у вас большая таблица (в несколько сотен тысяч строк), то обработка запроса займет много времени - это нормально)

Условие: есть таблица "table" и строки "id", email - колонка, где есть дублирующиеся адреса пот клиентов. нам нужно избавиться от вторых дублей.

CREATE TEMPORARY TABLE IF NOT EXISTS temp_table(`id` int(10)) ENGINE=MEMORY;
TRUNCATE TABLE temp_table;
INSERT INTO `temp_table` (SELECT MIN(id) as id FROM `table` GROUP BY `email`);
DELETE FROM `table` WHERE `id` NOT IN (SELECT `id` FROM `temp_table`);


temp_table - в примере выше, временная таблица, которая автоматиески создастся и удалится
email - коллонка, где есть дубликаты и которые нужно удалить.


Вариант 2:
Второй вариант, как удалить дубликаты строк из таблицы MySQL гораздо проще. Мы просто делаем JOIN таблицы на саму себя по условию равенства полей, удаляя записи с большим id.

DELETE t1 FROM `table` t1, `table` t2 WHERE t1.email=t2.email AND t1.id > t2.id

Лично я чаще всего использую вариант 2, но вариант 1 тоже хорош, для того что бы удалить дубликаты строк MySQL

ВАЖНО!!! Перед началом испробуте эти таблицы на своем домашнем сервере (локальном), а уже потом работайте с таблицей на реальном сервере. Это нужно т.к. с локального легче сохранить базы данных, чем с реального. p.s. или можете просто создать тестовую таблицу с данными и назвать её "test_table"




ОТКРЫТЬ КОММЕНТАРИИ Закрыть комментарии




Введите ЛЮБОЕ число ЦИФРОЙ от НУЛЯ до ДЕСЯТИ (проверка на бота)



P.S. сайт и некоторые статьи и сказки (с ошибками, неполные) корректируются, дорабатываются и удаляются.
Желательно, чтобы вы добавили в комментарий, то что бы вы хотели бы исправить, удалить или наоборот добавить на портал (сайт) , такие комментарии читаются и обязательно учитываются добрым админом :). (например: "добавьте раздел поэзии", "исправьте ошибку на странице: (recsgames.ru/example44)", "добавьте функцию такую-то" и прочее).
С уважением, создатель портала. :)





Почитать интересные истории:




Сырно написано? Заложи страницу в закладки :)








×

Рассказы из категории: Создание сайта (html,css,php,js)



info:

Bonjour Mon'Amie! Спасибо за прочтение!
Всем веселья и добра! :)