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