Master-X
Форум | Новости | Статьи
Главная » Форум » Программинг, Скрипты, Софт, Сервисы » 
Тема: MySQL запрос: Как оставить только уникальные записи!
цитата
02/07/08 в 10:45
 Lamagro
По ошибке 2 раза, с одним и тем же контентом, отработал скрипт заносящий в базу урлы сайтов.
Как составить запрос что бы убить неуникальные записи сравнивая урлы?
Возможно вообще посредством sql такое? Или делать чере php?
цитата
02/07/08 в 11:01
 xreload
Код:
SELECT DISTINCT * FROM table_with_urls
цитата
02/07/08 в 11:31
 Corex
Код:
DELETE twu.* FROM table_with_urls AS twu INNER JOIN table_with_urls AS bad ON bad.url = twu.url AND bad.id > twu.id;
цитата
02/07/08 в 11:36
 Lamagro
Код:
SELECT DISTINCT * FROM table_with_urls

не получается, выдается тоже самое, наверное потому что абсолютно уникальной записи нет, какое- то из полей всеравно различается.
Когда конкретно указываешь поле - работает Код:
SELECT DISTINCT url FROM urls
но опять же выводится тогда только список уникальных урлов.
Мне же нужно либо удалить неуникальные записи из таблицы.
цитата
02/07/08 в 12:18
 Lamagro
Corex писал:
Код:
DELETE twu.* FROM table_with_urls AS twu INNER JOIN table_with_urls AS bad ON bad.url = twu.url AND bad.id > twu.id;
биг сэнкс
а можно расшифровать?

Последний раз редактировалось: Lamagro (02/07/08 в 13:03), всего редактировалось 1 раз
цитата
02/07/08 в 12:41
 Corex
Работает по такому принципу - удаляет все записи, у которых поле url не уникально и оставляет только 1 запись с максимальным ID, т.е. ту, которую добавили последней. Можно сделать наоборот, чтобы оставлял самую первую, тогда знак ">" на "<" надо поменять.
цитата
02/07/08 в 13:02
 Lamagro
еще раз большой спасиб!
очень помог

п.с.
Код:
DELETE twu.* FROM

меня вот этот кусок кода смутил по незнанию... Я знал только такую конструкцию SELECT url.table_with_urls icon_smile.gif
цитата
02/07/08 в 13:42
 Corex
Да не за что! icon_biggrin.gif
а DELETE twu.* FROM нужно т.к. после джойна как бы 2 таблицы (хотя физически это одна и та же) и нужно указать откуда удалять.


Эта страница в полной версии