社会保障番号をデータベースに保存していますが、整数を保存する代わりに、5 桁のシーケンスのみを保存しています。したがって、SSN 番号が 123-12-1234 の場合、行に 5 桁ある限り、データベースには #23121### や ####21234 などの番号が格納されます。
したがって、ユーザーが SSN 全体を入力すると、データベースがすべての一致を検索する必要があります。
だから、私はこれを行うことができます:
SELECT * FROM user WHERE ssn like 123121234
しかし、SSN フィールドにマスクされた文字 (#23121###) があるため、上記のクエリは機能しません。これを行う良い方法はありますか?
多分良い方法は
SELECT * FROM user WHERE REPLACE (ssn, '#', '') like 123121234
問題が発生する可能性がありますが、DB に保存する 5 つの数字はシーケンス内のどこにでもある可能性があるため、クエリは関連性のない一致を返す可能性があります。
より良い検索を行う方法はありますか?