Некоторые вопросы санации базы данных - PullRequest
0 голосов
/ 14 сентября 2011

у нас есть база данных из ~ 250 тыс. Записей, которые мы хотим очистить, и есть несколько запросов, которые я просто не знаю, как написать:

* очистить слова, содержащие подстроку, например, если слово содержит подстроку «кеш», удалите все слова, например:

"cachelkjdlkjalkjs here happened something" => "here happend something"

* удалить строки, содержащие более 2 цифр, за исключением пары случаев, например: разрешены 3 цифры 365.

так:

"365 days a year, we do that" => Do nothing
"798 is a random number" => DELETE

* проверить количество слов и удалить записи с количеством слов меньше X.

Любая помощь будет оценена.

1 Ответ

1 голос
/ 14 сентября 2011

Сначала создайте резервную копию базы данных!

Сначала я составил бы список слов (вместе с числами 0 ... 99, 365 и любыми другими, которые вы думаете).Затем я создал бы сценарий (язык вашего выбора) для прохождения строк.Для каждой строки извлеките слова, знаки препинания и цифры, а затем проверьте, чтобы они были действительными.Для правильных восстановите запись и выложите биты, которые не совпадают.Из битов, которые не совпадают, я бы просто посмотрел, чтобы убедиться, что вы ничего не пропустили.

Я бы сначала сделал это в пассивном режиме (т.е. не менял базу данных), пока вы не обрадуетесьвсе хорошо.

Надеюсь, это поможет.

...