×

Вокруг мира Петербург и окрестностиВыборгКрымтурцияпро сссрОбщество, мирСтрашное и мистическоеПоследние новостиТайны историитунисфакты и мир
Интересно Мистика и ГаданияМузыкаАнекдотыуроки по html,css,js,php
Исскуство и поэзия Японские стихи и прозаСтихи Золотого векаМифы и Легенды древнего мираПритчиБасниСтихи Серебренного века
Разные эпохи Тайны историиДревняя Азияпро сссрСредневековьеСказки народов мира
Разное КонвертерыСтрашное и мистическоеРаскраскиКомедия "Дино и его друзья"Оригами
общество и мир факты и мирПсихологияПоследние новостиОбщество, мирАфоризмы и цитаты

-----------

Вашему сайту нужна помощь? Политика конфидициальности Разместить рекламу

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


дубликаты, похожие, похожие строки, дубликаты строк, удалить дубликаты строк, удалить похожие строки, избавиться, от дубликатов, от строк, удалить дублирующиеся строки, 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"



Комментарии

Комментариев пока нет. Оставь тут свой комментарий или анекдот!


Комментарии к посту






 На пути от капитализма к коммунизму у нашего человека было много интернациональных долгов, и он выполнял их, принося свободу в другие страны. Но остается загадкой: откуда он брал свободу? Ведь своей свободы у него не было.

Смешной афоризм


Norway
Самый северный вулкан - Беренберг высотой 2276 метров, он расположен на норвежском острове Ян-Майен в Гренландском море. Последний раз он извергался в сентябре 1970 года. Во время извержения все 39 жителей острова были вынуждены покинуть его. Самый южный действующий вулкан - Эребус - находится на острове Росса в Антарктиде. Он был открыт в 1841 году английской экспедицией под командованием капитана Джеймса Росса.

[ Интересные факты о мире ]






Как сделать круг в css или круглую рамку для картинки?
Данные не загружаются (импортируются) в базу данных или импортируются долго. Что делать?
Общество, мир факты и мир Последние новости турция тунис Петербург и окрестности Крым про ссср Выборг Тайны истории Страшное и мистическое






×

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