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

12 3
[Удален]
2395

Друзья, поможите пожалуйста ;) Не соображу: у меня база ссылок.. мне нужно удалить из нее дубликаты.. как сделать?

[Удален]
#1

руками, друг :)

A
На сайте с 18.09.2009
Offline
3
#2

Ну положи их в одну табличку и выбери в другую вот так:

CREATE TABLE new_table as

SELECT * FROM old_table WHERE 1 GROUP BY `тут то, по чём надо сделать их уникальными`;

Die Energie der Welt is Konstant. Die Entropie der Welt strebt einem Maximum zu.
[Удален]
#3

Antelle, т.е. типа ради удаления дубликатов надо создать новую таблицу? :)

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

Elles, намного проще таки создать.

Кнопка вызова админа ()
G.Vad!k
На сайте с 04.10.2007
Offline
74
#5


select GROUP_CONCAT(DISTINCT id SEPARATOR ' ') from queries group by extra_value having count(*)>1;
.........................
| 35209 4261 6344 17777 1055 42822 |
| 35870 37302 |
| 901 5572 |
| 43050 1958 |
| 1056 38517 |
| 5521 371 |
| 23754 325 |
| 1461 9759 4478 |
+-----------------------------------------------------------+
8460 rows in set (0.45 sec)
mysql> select count(*) from queries; +----------+
| count(*) |
+----------+
| 42673 |
+----------+
1 row in set (0.00 sec)
mysql> show columns from queries; +-----------------+--------------+------+-----+---------------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------------+--------------+------+-----+---------------------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| value | varchar(255) | NO | UNI | | |
| disabled | tinyint(1) | NO | | 0 | |
| extra_value | varchar(255) | NO | MUL | | |
| create_datetime | datetime | NO | | 0000-00-00 00:00:00 | |
+-----------------+--------------+------+-----+---------------------+----------------+
[Удален]
#6
Elles, намного проще таки создать.

😂

ну-ну

Это тоже самое, что Select * FROM table, вместо SELECT * FROM `table` WHERE `rows` = '$'

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

Elles, ну покажите же как надо ? только способ должен быть простой и без создания любых таблиц.

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

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

satrau
На сайте с 08.11.2009
Offline
12
#9

Все очень просто извлекаем из базы все ссылки в массив $ssilki

потом просто

$ssilki = array_unique($ssilki);

Все, теперь в $ssilki только уникальные значения.

Потом уже просто запихиваем все обратно в таблицу.

satrau добавил 25.01.2010 в 00:52

ps/ http://www.php.net/manual/en/function.array-unique.php

Россошь (http://www.flash9.ru)
codefather
На сайте с 20.01.2010
Offline
51
#10

netwind, Dreammaker,

SELECT url, count(*) FROM table GROUP BY url;

у вас будет список ссылок с числом их потворений

там, где не 1 - выписываете и стираете

12 3

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