从表字段中使用多个LIKE条件选择行

时间:2014-06-16 13:05:23

标签: sql sql-like

我用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条件检索给定客户的所有行。 到目前为止,我惨遭失败。 请问有什么线索吗? 提前致谢。 银。

1 个答案:

答案 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;