|
|
|
Как удалить дубликаты наборов связей
|
|||
|---|---|---|---|
|
#18+
Есть таблица связей, например: id — nabor — slovo 01 — 001 — 3456 02 — 001 — 3457 03 — 001 — 3458 04 — 001 — 2356 05 — 002 — 4512 06 — 002 — 4532 07 — 002 — 8756 08 — 003 — 3456 09 — 003 — 3457 10 — 003 — 3458 11 — 003 — 2356 Как удалить дубликаты наборов с одинаковыми словами и их количеством, т. е. как оставить один из наборов 001 и 003? Наборов сотни тысяч, бд не зависнет?… или сервер? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2014, 07:26:35 |
|
||
|
Как удалить дубликаты наборов связей
|
|||
|---|---|---|---|
|
#18+
И в наборах слов по 10-50. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2014, 07:35:36 |
|
||
|
Как удалить дубликаты наборов связей
|
|||
|---|---|---|---|
|
#18+
http://www.sql.ru/forum/actualsearch.aspx?search=??????? ?????????&sin=0&st=t&bid=6&a=&ma=0&dt=-1&s=1&so=1 ЧСХ, вторая найденная тема - тоже ваша. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2014, 08:46:51 |
|
||
|
Как удалить дубликаты наборов связей
|
|||
|---|---|---|---|
|
#18+
Чёта типа Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2014, 09:23:25 |
|
||
|
Как удалить дубликаты наборов связей
|
|||
|---|---|---|---|
|
#18+
Запущать до тех пор, пока удаляет хотя бы одну запись. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2014, 09:23:47 |
|
||
|
Как удалить дубликаты наборов связей
|
|||
|---|---|---|---|
|
#18+
AkinaЗапущать до тех пор, пока удаляет хотя бы одну запись. интересный способ. :) смущает правда что при наличии 10 дублей, это 9 раз надо будет щитать одно и тоже, а главное, что то что останеться определяеться случайным образом. но рабочий и интересный :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2014, 11:09:43 |
|
||
|
Как удалить дубликаты наборов связей
|
|||
|---|---|---|---|
|
#18+
alex564657498765453то что останеться определяеться случайным образом Это определяется условиями исходной задачи. Но никто не мешает, например, в подзапросе q2 вместо `nabor` получать, к примеру, MAX(`nabor`) AS `nabor` - тогда останется группа с минимальным значением этого поля. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2014, 12:41:27 |
|
||
|
Как удалить дубликаты наборов связей
|
|||
|---|---|---|---|
|
#18+
Akina, GROUP_CONCAT Вот, блин, посмотрел про эту функцию и засада — у неё ограничение на количество символов в 1024, а у меня есть наборы по 4000 символов и более… Хостер не даёт настраивать mysql. Как быть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2014, 16:29:39 |
|
||
|
Как удалить дубликаты наборов связей
|
|||
|---|---|---|---|
|
#18+
Думаю, GROUP_CONCAT(FUNCTION(slovo) ORDER BY slovo) спасёт отца русской демократии. В качестве FUNCTION можно использовать MD5, PASSWORD или OLD_PASSWORD - в зависимости от потребного быстродействия. Коллизию же считаю достаточно малореальной... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2014, 16:47:45 |
|
||
|
Как удалить дубликаты наборов связей
|
|||
|---|---|---|---|
|
#18+
А я вот ещё что придумал, узнав про функцию GROUP_CONCAT (не нужно будет пляски с саблями из запросов делать): 1. создаём временную таблицу с номером набора и строкой из слов в нём в алфавитном порядке (эта строка уникальный ключ); 2. добавляем туда данные с пропуском (IGNORE для строк из слов, которые уникальные); 3. удаляем из оригинальной таблицы связей все связи с номерами наборов, которых нет во временной таблице; 4. удаляем временную таблицу. Что-то типа того… Это можно одним запросом реализовать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2014, 17:08:33 |
|
||
|
Как удалить дубликаты наборов связей
|
|||
|---|---|---|---|
|
#18+
andrejkХостер не даёт настраивать mysqlЧто, даже в сессии изменить не получается? http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html#sysvar_group_concat_max_len Variable Scope Global, Session ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2014, 18:49:56 |
|
||
|
Как удалить дубликаты наборов связей
|
|||
|---|---|---|---|
|
#18+
Для меня это что-то новенькое… И как мне это через сессию изменить? В чём принцип механизма? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2014, 19:09:35 |
|
||
|
Как удалить дубликаты наборов связей
|
|||
|---|---|---|---|
|
#18+
AkinaДумаю, GROUP_CONCAT(FUNCTION(slovo) ORDER BY slovo) спасёт отца русской демократии. В качестве FUNCTION можно использовать MD5, PASSWORD или OLD_PASSWORD - в зависимости от потребного быстродействия. Коллизию же считаю достаточно малореальной... вполене себе реальная...пока у меня первичный ключ был мд5 , а не гуид, то при тесте на 15000 вставок, всреднем по одной -вде колизии при тесте возникало... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2014, 19:19:41 |
|
||
|
Как удалить дубликаты наборов связей
|
|||
|---|---|---|---|
|
#18+
andrejk, Код: sql 1. вроде бы так сессионные переменные выставляются ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2014, 19:19:59 |
|
||
|
Как удалить дубликаты наборов связей
|
|||
|---|---|---|---|
|
#18+
tanglirandrejk, Код: sql 1. вроде бы так сессионные переменные выставляются set global @param = 10 - значение для сервера set @param = 20 - значение для сесии ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2014, 19:22:25 |
|
||
|
Как удалить дубликаты наборов связей
|
|||
|---|---|---|---|
|
#18+
[quot alex564657498765453]tanglirandrejk, set @param = 20 - значение для сесии В моём случае, похоже, будет так: Код: php 1. Только куда это писать? И вот про это что скажете-то: 1. создаём временную таблицу с номером набора и строкой из слов в нём в алфавитном порядке (эта строка уникальный ключ); 2. добавляем туда данные с пропуском (IGNORE для строк из слов, которые уникальные); 3. удаляем из оригинальной таблицы связей все связи с номерами наборов, которых нет во временной таблице; 4. удаляем временную таблицу.? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2014, 20:24:46 |
|
||
|
Как удалить дубликаты наборов связей
|
|||
|---|---|---|---|
|
#18+
alex564657498765453set global @param = 10 - значение для сервера set @param = 20 - значение для сесиишта? http://dev.mysql.com/doc/refman/5.1/en/set-statement.html Код: sql 1. 2. 3. 4. 5. 6. откуда взялась собака в системных переменных? а если имелись в виду пользовательские, так они глобальными не бывают. andrejkТолько куда это писать?туда же, куда и остальные запросы... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2014, 04:54:45 |
|
||
|
Как удалить дубликаты наборов связей
|
|||
|---|---|---|---|
|
#18+
tangliralex564657498765453set global @param = 10 - значение для сервера set @param = 20 - значение для сесиишта? http://dev.mysql.com/doc/refman/5.1/en/set-statement.html Код: sql 1. 2. 3. 4. 5. 6. откуда взялась собака в системных переменных? а если имелись в виду пользовательские, так они глобальными не бывают. andrejkТолько куда это писать?туда же, куда и остальные запросы... а я сам не знаю откуда там собака... идею хотел высказать нащот с /без слова глобал присваивать, а на кой я туда собаку затулил...наверно по привычке пальцы при слепом наборе ...токо подумал про сет, пробел и собака дорисовывают пальцы сами :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2014, 11:08:56 |
|
||
|
|

start [/forum/topic.php?fid=47&fpage=155&tid=1833946]: |
0ms |
get settings: |
5ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
26ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
33ms |
get tp. blocked users: |
1ms |
| others: | 194ms |
| total: | 283ms |

| 0 / 0 |
