|
|
|
Удалить дубликаты по Description
|
|||
|---|---|---|---|
|
#18+
Здравствуйте дорогие форумчане. Хочу к вам обратится за помощью. У меня есть сайт, а в нем есть база данных, а в ней есть таблицы, - id - Title - Description Я могу удалить дубликаты, по полю, Title таким образом. ALTER IGNORE TABLE xzclf_ads ADD UNIQUE INDEX(title); Но вот когда я требую удалить, дубликат из поля Description Программа отвечает мне, вот что : BLOB/TEXT column 'description' used in key specification without a key length Вопрос, как вы посоветуете удалить все дубликаты записей из поля Description Я вас предупреждаю, в базе, 50 тысяч записей. Спасибо вам друзья. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2015, 23:51:38 |
|
||
|
Удалить дубликаты по Description
|
|||
|---|---|---|---|
|
#18+
ваши случаи уже обсуждались, воспользуйтесь поиском, например - Уникальное поле типа TEXT и добавление констрейнтов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2015, 08:51:08 |
|
||
|
Удалить дубликаты по Description
|
|||
|---|---|---|---|
|
#18+
тебе дубликаты надо удалить, или простой запрос написать???? Код: sql 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2015, 11:03:48 |
|
||
|
Удалить дубликаты по Description
|
|||
|---|---|---|---|
|
#18+
Это не помогает.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2015, 11:13:06 |
|
||
|
Удалить дубликаты по Description
|
|||
|---|---|---|---|
|
#18+
alex564657498765453тебе дубликаты надо удалить, или простой запрос написать???? Код: sql 1. 2. 3. 4. 5. 6. 7. Мне нужно удалить дубликаты, по полю Description которое имеет свойство LONGTEXT. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2015, 11:32:03 |
|
||
|
Удалить дубликаты по Description
|
|||
|---|---|---|---|
|
#18+
sqlbotalex564657498765453тебе дубликаты надо удалить, или простой запрос написать???? Код: sql 1. 2. 3. 4. 5. 6. 7. Мне нужно удалить дубликаты, по полю Description которое имеет свойство LONGTEXT. а идея моего запроса что удаляет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2015, 11:33:41 |
|
||
|
Удалить дубликаты по Description
|
|||
|---|---|---|---|
|
#18+
Я думаю она удаляет то что нужно, но вот дело в том, что там 50к записей, и это реально удалить такой коммандой дубли ? Т.е мне нужно что бы дубли удалились, но одна версия дубля осталась, т.е не все полностью, а одну запись оставлять. Если это есть в вашем примере это хорошо, но вот время, и сможет ли такой запрос выполниться при условии что в базе 50к постов.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2015, 11:41:31 |
|
||
|
Удалить дубликаты по Description
|
|||
|---|---|---|---|
|
#18+
кстате, незнаю насколько это верно, но встречал мысль. если есть поле текст, то шансы на совпадение md5 у разных текстов малы, но совпадение md5(text) и md5(symbol+text) уже крактически ноль. только символ добавлять именно вначале. суть работы мд5, он берёт первый блок данных, выщитывает по нему значения, на освновании значений и второго блока новые значения и так до конца данных. если доставить символ в конце, то весь процес подщёта суммы будет совпадать, отличие будет только на последнем этапе, но при условии что последний участок текста различается, а ведь это может быть и не так....скажем концовка стандартная. если же вначале добавить.то сместяться границы разделения данных на куски, и уже в том куске где данные различаються, фактически гарантированно вычисления пойдут по разным путям. и шанс на то что суммы всёравно совпадут уже практически ноль. да и математик один показал и доказал способ взлома мд5, котоырй строиться на том, что по первому различию в данных, нужно дальше подгадать другое различие. поставив символ в начале, мы смещая границы разбиение, меняем вычисления гдето в начале на различиях, но в следующих блоках не меняя ничего не даём возможность получить тотже результат. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2015, 11:42:09 |
|
||
|
Удалить дубликаты по Description
|
|||
|---|---|---|---|
|
#18+
Т.е способ удалить в поле description безнадежен ?.. Вот пришла идея, а если сделать так, к примеру сравниваем тайтл, и некий начальный участок поля description думаю к примеру если в description будет 5-6 слов похожи и тайтлы одинаковы, то я думаю 70% это будет дубликат соообщение.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2015, 11:48:26 |
|
||
|
Удалить дубликаты по Description
|
|||
|---|---|---|---|
|
#18+
sqlbotЯ думаю она удаляет то что нужно, но вот дело в том, что там 50к записей, и это реально удалить такой коммандой дубли ? Т.е мне нужно что бы дубли удалились, но одна версия дубля осталась, т.е не все полностью, а одну запись оставлять. Если это есть в вашем примере это хорошо, но вот время, и сможет ли такой запрос выполниться при условии что в базе 50к постов.. да легко, в результатирующей выборке будут записи дубли по принципу... если скажем дублей два тоесть 1 ааааа 2 аааа 3 ааааа то в результате будет 1 ааааа 2 ааааа 1 ааааа 3 ааааа 2 ааааа 3 ааааа ---условия совпадения текста и айдишник правой таблицы должен быть строго больше левой. можно ещо поиграться, запросом...но я привел лишь идею поиска дублей(тоесть без записей которые надо оставить) это совпадение текста, а айди строго больше у правой таблицы. поэтому в правой, для дублированого текста никогда не появиться запись, с таким текстом и минимальным айдишником. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2015, 16:49:56 |
|
||
|
Удалить дубликаты по Description
|
|||
|---|---|---|---|
|
#18+
sqlbotТ.е способ удалить в поле description безнадежен ?.. Вот пришла идея, а если сделать так, к примеру сравниваем тайтл, и некий начальный участок поля description думаю к примеру если в description будет 5-6 слов похожи и тайтлы одинаковы, то я думаю 70% это будет дубликат соообщение.. и не надо переживать за базу. 50000 тысяч записей... за пару минут у меня база генерировала 200 000 записей, так там использывались хеши и операции со строками длиной до 100 символов - ну тоесть процес генерации одной строки, это не совсем атомарное действие было, а два экрана кода хранимой процедуры. --- создавал тестовое наполнение таблиц двух, притом что одна вставка = по одной вставке в обе таблицы, а потом апдейт внешнего ключа. так что 50000 текстов стравнить, тем более что основная масса сравнений - уже на первых символах будет видно не совпадение. но как вариант второй, добавь поле хеш от всего текста. и сделай на нём индекс уникальности :), только хеш строй по принципу хеш от текста + хеш от текста с дополнительным символом. и вот это всё, запихни в бинари ...и на нём индекс уникальности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2015, 16:54:12 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38866065&tid=1833623]: |
0ms |
get settings: |
6ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
46ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 213ms |
| total: | 339ms |

| 0 / 0 |
