如何使用WHERE IN子句将多个搜索模式传递​​给sql语句

时间:2014-09-23 13:25:57

标签: sql

我的表中有以下数据,

  +----------+---------+
  | Country  | Product |
  +----------+---------+
  | Poland   | Lyca    |
  | USA      | Lyca    |
  | UK       | GT      |
  | Spain    | GT      |
  | Swiss    | Lyca    |
  | Portugal | GT      |
  +----------+---------+

从上表中,我试图使用下面给出的查询来获取数据,

 Select Country,Product from tab where Country in ('%pai%','%U%')

查询正在执行,但我得到了空的结果。所以,请确认我,上述查询是否有效。

2 个答案:

答案 0 :(得分:3)

使用likeor

Select Country,Product
from tab
where Country like '%pai%' or
      Country like '%U%';

答案 1 :(得分:0)

将您的模式放入单独的表中:

PATTERNTABLE
SessionKey     Pattern  
----------     -------
abc123         %pai%
abc123         %U% 

然后加入它:

SELECT Country, Product
FROM Tab t
INNER JOIN PatternTable pt ON pt.SessionKey= @SessionKey 
     and t.Country LIKE pt.Pattern

诀窍在于如何填充模式表。