Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Удаление "дубликатов" из БД
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Есть вопрос - как удалить повторяющиеся строки из таблицы, если одно поле может быть отлично от поля дублируемой записи? Подробнее: есть таблица - tel в ней много записей - номера телефонов, адреса, описания организаций.... при вставке использовались различные источники - соответственно есть различные данные об одном и том же адресе, но! есть и одинаковые - различие только в дате добавления записи (поле date_add) - дата для двух одинаковых по содержнию строк разная. Мне и нужно удалить записи, которые "старые" и повторяют более новые за исключением поля дата. Как это сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2007, 22:20 |
|
||
|
Удаление "дубликатов" из БД
|
|||
|---|---|---|---|
|
#18+
с помощью запроса select distinct on (number,address,info) number,address,info,add_date from tel order by number,address,info,add_date; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2007, 09:58 |
|
||
|
Удаление "дубликатов" из БД
|
|||
|---|---|---|---|
|
#18+
так я понимаю получу только уникальные записи? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2007, 10:42 |
|
||
|
Удаление "дубликатов" из БД
|
|||
|---|---|---|---|
|
#18+
twistfireтак я понимаю получу только уникальные записи?Точно! Например delete from tel where (number,address,info,add_date) not in (select ...); -- возможно медленный запрос Или с помощью временной таблицы, если есть записи, у которых совпадают все поля, включая add_date. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2007, 11:10 |
|
||
|
Удаление "дубликатов" из БД
|
|||
|---|---|---|---|
|
#18+
twistfireтак я понимаю получу только уникальные записи? у вас в таблице есть первичный ключ? если да, то задача решается просто. Если нет, добавьте его, чтобы не возиться и не сравивать все поля ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2007, 17:13 |
|
||
|
Удаление "дубликатов" из БД
|
|||
|---|---|---|---|
|
#18+
Winnipuh twistfireтак я понимаю получу только уникальные записи? у вас в таблице есть первичный ключ? если да, то задача решается просто. Если нет, добавьте его, чтобы не возиться и не сравивать все поля не понял... у меня есть первичный ключ - id - Serial Primary Key; объясните еще раз, пожалуйста.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2007, 22:58 |
|
||
|
Удаление "дубликатов" из БД
|
|||
|---|---|---|---|
|
#18+
delete from table where id not in (select min(id) from table group by addr,phone,..... ) (addr,phone... = все поля без кроме даты и id ) select min(id) from table group by addr,phone,..... выбираем ид перывой вставненной записи с одинаковыми адресами телефонами и т.д сюда так же попадут записи у которых нет дублей по полям . остальные ид соответственно будут у дубликатов. их и удаляем. вроде так... потренируйся на "кошках".. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2007, 18:29 |
|
||
|
|

start [/forum/topic.php?fid=53&fpage=290&tid=2005154]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
39ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 243ms |
| total: | 370ms |

| 0 / 0 |
