お世話になります。
C#にて、データベース(SQLite)を操作するプログラムを作っています。
データベースのテーブル上に、IDと名前の二つの要素があるとします。
データベースにInsertする際に、これから追加しようとする『名前』と、
データベースの既存のデータの『名前』を比較し、類似性のあるものを
教えてくれる仕組みを作りたいと思っています。
『データベース上に、【xxxx】という名前のレコードがありました。
もしかすると、今Insertしようとしているのは、このデータのことではないですか?』
…等の様なメッセージを表示させ、ユーザに催促させたいのですが、
このように『似通ったデータがある』といったデータを抽出させることは
SQLなどでは可能でしょうか。もしくは、C#などのメソッドでできることでしょうか。
もしくは、それらしいものを自作しないとダメでしょうか。
かなり条件的には高めに見ており、『あいうえお かきくけこ さしすせそ 50kg』
といったデータが既にある場合、
『かきくけこ あいうえ さしすせそ 50K』でもヒット、
『あいくけこ 50 さしすせそかきうけこ』でもヒットといった感じです。
単純に、一文字ずつ比較してしまうといった流れになってしまいそうな気もしますが、
もっと効率の良い方法がありましたらお教えいただけないでしょうか。
よろしくお願いいたします。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
以前名寄せが必要な際に、以下のサイトを参考にさせていただきました。
秀逸です。
http://d.hatena.ne.jp/siokoshou/20080324
参考URL:http://d.hatena.ne.jp/siokoshou/20070315
回答、ありがとうございます。
データベース単体でできればと思ってたのですが、
それは無理そうなので、参考のサイトを手掛かりに
作成してみたいと思います。
…ただ、その方法では、データベースから一度すべてのデータを
引っ張り出し、一つ一つ比較するしかなくなってしまうかと
思うのですが…、これは致し方ないことなのでしょうか…。
DB的には、相当な負担になってしまうような気も…。
ありがとうございました。
No.1
- 回答日時:
「名寄せ」でぐぐりましょう。
いっぱい情報が出てきます。すごく大雑把に言えば、データの特性ごとに不要文字を除いて比較したり、
切り分けたり、置き換えたり、並び替えたり、数えたり、多角的に比較して類似性を数値化して
一定のスコア以上であれば類似と判定するとか、そういった処理になります。
ご質問にあった文字列であれば
・スペースは無いものとして比較する
・数字のみの単語、数字+Kの単語、数字+KG単語は同一と見なす
・構成している文字の数(「あ」が1文字、「い」が1文字・・・)が同一であれば類似
とするとか。
回答、ありがとうございます。
参考にさせていただきましたが、SQL、つまり
データベースの既存の機能ではできないみたいですね。
一発であいまい検索してくれるSQLがあればと思ったのですが…。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- Ruby pandasでsqlite3にテーブル作成・追加・読み出しでindexの取り扱い方教えてください 5 2023/03/08 09:57
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- JavaScript Q&Aの掲示板を作成していてヤフー知恵袋やgoo質問のように質問ごとにURLを生成したい 5 2023/08/04 01:22
- その他(データベース) IT用語について質問です。 以前ITパスポートの試験を受けた際にデータベースが何の集まりかについての 2 2022/12/10 12:29
- Excel(エクセル) エクセルで沢山のレコードの最後に追記するには? 7 2023/04/10 13:27
- その他(データベース) pythonでsqlight勉強中、クエリー結果の利用法教えて下さい 1 2022/04/28 20:38
- その他(データベース) 業務用のデータベースサーバーの選び方について 4 2022/11/22 10:22
- MySQL 複数DBテーブルからのデータ取得 3 2022/05/17 15:02
- SQL Server PCが悪くなって新しいPCにSSMSのデータを移すよう頼まれたけど移し方が分からない 1 2023/05/18 16:54
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
長さ0の文字列を格納できません...
-
formで送信したPOSTデータの削...
-
納品 vs ご納品 どちらが正し...
-
texに関する初歩的な質問
-
「スポット受注」はどういう意...
-
納入日と納品日について
-
テキストファイル内の外字の有無
-
テストについて
-
三菱製PLC:ファイルレジスタ(...
-
Excel-VBA コンテンツの作成日時
-
見積書と発注書を兼用できるの...
-
契約期間内における値上げ等に...
-
プログラマーの土日のみのアル...
-
Zと2とか紛らわしいのがあるか...
-
P2P地震速報のEEW APIの仕様書...
-
ACCESSで受注管理を作成中です...
-
スーパーやドラッグストアで食...
-
エントリーシート
-
マスクROM と PROMの違いについて
-
契約書の「重大な背信行為」は...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
長さ0の文字列を格納できません...
-
formで送信したPOSTデータの削...
-
電子納品
-
Q&Aの掲示板を作成していてヤフ...
-
株価予測システムを作成するた...
-
住所から市町村JISコードを検出
-
桁数の長くないユニークな値の取得
-
Access97データベースの最大登...
-
CGI(Perl)を使用してGoogleスプ...
-
統計ソフトを作りたいです。
-
プログラムを依頼したときの相...
-
パソコン 言語について 競馬...
-
複数同時アクセスついて
-
Postgresの高速検索
-
【ASP.NET】DataSetをSqlDataSo...
-
「ByRef引数の型が一致しません...
-
xreaでのブログについて
-
株価の終値を自動入力し、自動...
-
マスタメンテ系の仕事とは?
-
XMLになるとホームページはどう...
おすすめ情報