как найти повторяющиеся строковые значения, которые не совсем одинаковы, но похожи в SQL

0

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

atec,inc
atec inc
ate inc  

abc group
abc groups
abc grups

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

Теги:
duplicate-removal

3 ответа

1

Если какой-либо шаблон для вариаций вы можете попробовать с помощью регулярных выражений, которые MySQL, похоже, поддерживает (мы используем Postgres, что определенно делает):

http://dev.mysql.com/doc/refman/5.1/en/regexp.html

Если это не так, я боюсь, что вам придется делать это в своем приложении. Как упоминал Пит, существуют различные алгоритмы поиска похожих звуков, мы используем/использовали для этого расстояние Левенштейна, расстояния Хэмминга симх и фонетического кодирования Кёльнера.

  • 0
    Вы не можете использовать регулярное выражение для выбора, просто верните true / false (совпал / не совпал) или что-то в этом роде.
  • 0
    @ domatic69 В Postgres есть такие вещи, как SELECT record FROM myrecords WHERE record ~ 'A'; , oreilly.com/pub/a/databases/2006/02/02/postgresq_regexes.html
0

Это было бы идеальное использование для функционального индекса, но поскольку я не думаю, что у 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

Я не знаю, что у SQL есть SELECT WHERE A SORTA_OF_LIKE B, но посмотрите "расстояние Левенштейна", возможно, способ сделать сортировку "что вы хотите".

Ещё вопросы

Сообщество Overcoder
Наверх
Меню