[PHP] Дубликаты в mySQL

123
[Удален]
#11
satrau:
Все очень просто извлекаем из базы все ссылки в массив $ssilki
потом просто
$ssilki = array_unique($ssilki);
Все, теперь в $ssilki только уникальные значения.
Потом уже просто запихиваем все обратно в таблицу.

школьники подтянулись :D

[Удален]
#12

че-то не пойму возмущения :) вроди Antelle предложил нормальный вариант...

-------------

ааа. накинулись на Elles! поддерживаю :)

N
На сайте с 06.05.2007
Offline
419
#13

Ну, на самом деле, я тут подумал и ведь есть занятные варианты. Но получается запрос с двойными скобками.

выбрать в новую таблицу, удалить и сделать rename table будет всяко быстрее.

Кнопка вызова админа ()
codefather
На сайте с 20.01.2010
Offline
51
#14
MOP1:
че-то не пойму возмущения :) вроди Antelle предложил нормальный вариант...

да?

из второй (???) таблицы он получил список без повторов.

отлично.

а как и что удалить из первой?

codefather добавил 25.01.2010 в 02:13

netwind:
Ну, на самом деле, я тут подумал и ведь есть занятные варианты. Но получается запрос с двойными скобками.
выбрать в новую таблицу, удалить и сделать rename table будет всяко быстрее.

одним запросом наверное не стоит

ведь скорее всего надо не просто удалить, а какие то манипуляции с повторами произвести... типа мыло им отправить или еще что

Dreammaker
На сайте с 20.04.2006
Offline
569
#15

\

codefather:
у вас будет список ссылок с числом их потворений
там, где не 1 - выписываете и стираете

а ластик какой использовать, можно синего цвета?

codefather
На сайте с 20.01.2010
Offline
51
#16
Dreammaker:
\

а ластик какой использовать, можно синего цвета?

цвет можно в мане подобрать, дубликаты выбраны, а уж стирать ума не надо

[Удален]
#17
Друзья, поможите пожалуйста Не соображу: у меня база ссылок.. мне нужно удалить из нее дубликаты.. как сделать?
ведь скорее всего надо не просто удалить, а какие то манипуляции с повторами произвести... типа мыло им отправить или еще что

ога.

прекратите выдумывать. ведь у кого-то сегодня день рождения. не будем портить людям праздник ;) ога

N
На сайте с 06.05.2007
Offline
419
#18

фокус в том, что можно таки заставить mysql думать, что он не обновляет одну и ту же таблицу понаставив скобок и подзапросов. выберем первый ключевой идентификатор записи в каждой последовательности через min и удалим все остальное - а это и будут дубликаты. работающий пример :


CREATE TABLE `musor` (
`a` int(11) NOT NULL AUTO_INCREMENT,
`b` int(11) DEFAULT NULL,
PRIMARY KEY (`a`)
) ;
-- .. и генерируем дубликаты
DELETE FROM musor
WHERE a NOT IN (
SELECT a FROM (
SELECT MIN(a) a FROM musor GROUP BY b
)
temp1
) ;

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

если дубликатов в базе относительно немного, скорее, лучше.

Dreammaker
На сайте с 20.04.2006
Offline
569
#19
codefather:
а уж стирать ума не надо

зачем мучить себя, вручную стирая там что-то, если слив данные в таблицу с такой же структурой я могу сделать это за пару минут?

codefather
На сайте с 20.01.2010
Offline
51
#20
Dreammaker:
зачем мучить себя, вручную стирая там что-то

вручную? тогда можно и дубли искать вручную

стирать разрешается одним запросом по списку идшников

хороший пример дал netwind

123

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий