今日もシュクシュクと!

ソフトウェア・エンジニアを目指して修行中の日々。学習もコツコツと。そして粛々と。

氏名での検索等のスペースの対応

検索画面から入力された「氏名」の検索などで検索用のDBカラムを定義せずに検索でヒットさせたい。 正攻法はテーブルにブランクを除いて連結したカラムを追加する方法だが、カラム追加が出来ない場合の手段として、SQLのLikeを使用して実現する方法がある。

例えばDB項目が以下のように「姓 + " "(全角スペース) + 氏名」のように登録されている状態で鈴木太郎、鈴木 太郎、鈴木 太郎 のどのパターンでもヒットさせたい。

氏名
鈴木 太郎

DBから取得した該当項目のスペースを'%'に置き換えlike検索にてSQLにてヒットさせることが可能。

String name = Name.replaceAll(" ", "%").replaceAll(" ", "%");
String[] strArray = name.split("");
String searchKey = "";
for(String key : strArray) {
 searchKey = searchKey + "%" + key;
}