我用CSV文件创建了一个表格,该文件由外部软件生成。 在其他字段中,此表包含一个名为“CustomID”的字段。 必须使用该字段的内容将此表中的每一行链接到客户。 每个客户可以自行决定拥有一组或多组customID,只要每个序列以相同的前缀开头即可。 例如: 客户1可以使用“cust1_n”和“cstm01_n”(其中n是数字) 客户2可以使用“customer2_n”
ImportedRows
PKID CustomID Description
---- --------------- --------------------------
1 cust1_001 Something
2 cust1_002 ...
3 cstm01_000001 ...
4 customer2_00001 ...
5 cstm01_000232 ...
..
现在我创建了2个支持表,如下所示:
Customers
PKID Name
---- --------------------
1 Customer 1
2 Customer 2
和
CustomIDs
PKID FKCustomerID SearchPattern
---- ------------ -------------
1 1 cust1_*
2 1 cstm01_*
3 2 customer2_*
我需要实现的是使用在该客户的CustomIDs表上找到的所有LIKE条件检索给定客户的所有行。 到目前为止,我惨遭失败。 请问有什么线索吗? 提前致谢。 银。
答案 0 :(得分:1)
要使用LIKE,您必须在模式中替换* with%。不同的dbms使用不同的函数进行字符串操作。我们假设有一个REPLACE函数:
SELECT ir.*
FROM ImportedRows ir
JOIN CustomIDs c ON ir.CustomID LIKE REPLACE(c.SearchPattern, '*', '%')
WHERE c.FKCustomerID = 1;