氏名での検索等のスペースの対応
検索画面から入力された「氏名」の検索などで検索用の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; }