我将社会安全号码存储在数据库中,但不是存储整数,而是只存储 5 位数字序列。因此,如果 SSN# 是 123-12-1234,我的数据库将存储它 #23121### 或 ####21234 或其他任何内容,只要它在行中有 5 个数字。
因此,当用户输入整个 SSN 时,我希望数据库找到所有匹配项。
所以,我可以这样做:
SELECT * FROM user WHERE ssn like 123121234
但是上面的查询不起作用,因为我在 SSN 字段中有一些被屏蔽的字符 (#23121###)。有没有这样做的好方法?
也许一个好方法是使用
SELECT * FROM user WHERE REPLACE (ssn, '#', '') like 123121234
尽管可能存在问题 - 查询可能会返回不相关的匹配项,因为我存储在数据库中的 5 个数字可能位于序列中的任何位置。
知道如何进行更好的搜索吗?