列名company_name(string)のテーブルがあります。この列の重複する値を見つける必要があります。完全に同じではないため、distinctまたはgroupbyを使用できません。例えば:
atec,inc
atec inc
ate inc
abc group
abc groups
abc grups
SQLでそのようなエントリを見つけるにはどうすればよいですか、またはこのためのrubyライブラリはありますか?
列名company_name(string)のテーブルがあります。この列の重複する値を見つける必要があります。完全に同じではないため、distinctまたはgroupbyを使用できません。例えば:
atec,inc
atec inc
ate inc
abc group
abc groups
abc grups
SQLでそのようなエントリを見つけるにはどうすればよいですか、またはこのためのrubyライブラリはありますか?
MySQLがサポートしているように見える正規表現で試すことができるバリエーションに何らかのパターンがある場合(私たちはPostgresを使用していますが、これは間違いなくサポートしています):
http://dev.mysql.com/doc/refman/5.1/en/regexp.html
そうでない場合は、アプリで行う必要があります。ピートが似たような音を見つけるためのさまざまなアルゴリズムがあると述べたように、この目的のためにレーベンシュタイン距離、シムハッシュのハミング距離、およびケルナー音声符号化を使用/使用しました。
これは機能インデックスの完璧な使用法ですが、MySQLにはその1つがないと思うので、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
また、単語のステミングに慣れていない場合は、検索の検索を増やすのにも役立つ強力な概念です。
お役に立てば幸いです。
SQL に SELECT WHERE A SORTA_OF_LIKE B があるかどうかはわかりませんが、「レーベンシュタイン距離」を調べてください。おそらく、必要なことを行う方法です。