部分匹配的可能解决方案(至少 n 个字段中的 p 个匹配)

Ahm*_*OUR 2 java sql oracle

我正在寻找部分匹配/可能匹配的可能解决方案(至少 n 个字段中的 p 个匹配)。

我们有一个数据库(Oracle),其中填充了个人记录,如下所示:

  • 名,
  • 姓,
  • 生日,
  • 公民号,
  • 市民广场,
  • 出生地,
  • 另一个号码,
  • 区。

(*) 请记住,没有唯一标识符,并非所有字段都可以提供,某些字段可能是可选的(空)。

如果 8 个字段中至少有 5 个匹配,我们正在寻找一种解决方案来根据数据库记录检查给定人员。

是否有可能使用 SQL、SQL/Java 的解决方案,或者我们应该寻找 nosql 或弹性搜索解决方案?

先感谢您。

Gor*_*off 5

您可以使用where和计算匹配项:

select t.*
from t
where ( (case when t.firstname = :firstname then 1 else 0 end) +
        (case when t.firstname = :lastname then 1 else 0 end) +
        . . .
      ) >= 5;
Run Code Online (Sandbox Code Playgroud)

  • 很棒的想法! (3认同)