这有点令人费解,但希望这是有道理的。我想弄清楚是否有查询或一些技巧可用于执行以下操作。 (我实际上是在使用Netsuite,所以它不完全是SQL,但是它们支持SQL命令的基本子集,所以如果可能的话,我可能会找到一种方法来实现它。)
我有一个表(Netsuite中的自定义记录),其中包含我们用作欺诈检查的客户地址的几个字段。欺诈客户倾向于通过添加虚假套件号或其他后缀来使用相同虚假地址的各种咒语。我们所做的就是在我们的表格中设置我们的记录,以获得街道地址的公共部分(如“123 Main Street”),而没有额外的东西(如“套房12345”)。当放置欺诈订单时,我们获取客户输入的地址并尝试在我们的表中查找任何记录,其中表的街道地址字段本身是客户在订单上输入的地址的子字符串。这是典型的子字符串搜索的后退,其中您尝试查找表中的字段包含子字符串的记录。相反,我试图找到表中的任何记录,其中字段是某个常量字符串的子字符串。
这有意义吗?是否有可能或者我必须自己做一些魔术?
答案 0 :(得分:1)
以下是我为类似情况所做的事情。假设您的两个欺诈地址位于fraud_addresses表中,其中包含street_address列。为了清楚起见,我将假设您使用参数@newaddress进行此操作;如果您有一组要验证的地址,可以对其进行调整。
select *
from fraud_addresses f
where charindex(f.street_address,@newaddress) > 0;
列出了可以作为新地址的子字符串找到的所有欺诈地址。