как найти повторяющиеся строковые значения, которые не совсем одинаковы, но похожи в SQL - PullRequest
0 голосов
/ 01 апреля 2011

У меня есть таблица с именем столбца company_name (строка), мне нужно найти повторяющиеся значения этого столбца, я не могу использовать различные или группировать, потому что они не совсем одинаковы.Например:

atec,inc
atec inc
ate inc  

abc group
abc groups
abc grups

как мне найти такие записи в sql или есть какие-либо рубиновые библиотеки для этого.

Ответы [ 3 ]

1 голос
/ 01 апреля 2011

Если есть какие-то шаблоны вариантов, которые вы можете попробовать с регулярными выражениями, которые MySQL, кажется, поддерживает (мы используем Postgres, который определенно поддерживает):это не тот случай, боюсь, вам придется делать это в своем приложении.Как упоминал Пит, существуют различные алгоритмы для поиска похожих звучащих вещей, для этого мы используем / использовали расстояние Левенштейна, расстояния Хемминга симаш и фонетическое кодирование Кёльнера.*http://de.wikipedia.org/wiki/K%C3%B6lner_Phonetik

http://en.wikipedia.org/wiki/Hamming_distance
0 голосов
/ 01 апреля 2011

Это было бы идеальное использование для функционального индекса, но, поскольку я не думаю, что в MySQL есть один из них, могу ли я предложить Полнотекстовый поиск в MySQL?

http://dev.mysql.com/doc/refman/5.5/en/fulltext-search.html

В частности, логический поиск:

http://dev.mysql.com/doc/refman/5.5/en/fulltext-boolean.html

Кроме того, если вы не знакомы с основанием слов, это мощная концепция, которая также поможет вам повысить эффективность поиска.

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

0 голосов
/ 01 апреля 2011

Я не знаю, что в SQL есть SELECT WHERE SORTA_OF_LIKE B, но посмотрите «Расстояние Левенштейна», возможно, способ сделать «что угодно».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...