如何从1个表中的两个字段中搜索一个值

时间:2015-03-12 17:34:27

标签: mysql sql-server sql-server-2008 sql-server-2008-r2

我有下表:

id   productname  model      price  color  size
1     mouse       m220        50     red    50
2     keyboard    k520        50     red    50
3     mouse       mouse220    50     red    50
4     pendive     p220        50     red    50
5     laptopfan   m220        50     red    50  

现在,当我搜索mouse m220时,它会在productnamemodel字段中找到所有产品。

现在假设我正在搜索mouse m220,那么它会给我以下输出:

   id   productname  model      price  color  size
    1     mouse       m220        50     red    50
    3     mouse       mouse220    50     red    50
    5     laptopfan   m220        50     red    50  

现在假设我正在搜索mouse,那么它会给我以下输出:

id   productname  model      price  color  size
1     mouse       m220        50     red    50
3     mouse       mouse220    50     red    50

那我怎么能得到这个输出?

2 个答案:

答案 0 :(得分:1)

    declare @cta varchar(100),@cta1 as varchar(50),@cta2 varchar(50)
    set @cta='mouse m220'
    select @cta1=case when charindex(' ',@cta)>0 then substring(@cta,1,charindex(' ',@cta)) else @cta end ,@cta2=substring(@cta,charindex(' ',@cta)+1,(len(@cta)-charindex(' ',@cta)+1))


 SELECT * FROM <TABLE_NAME> WHERE productname = @cta1 OR model = @cta2;

答案 1 :(得分:0)

这些将是两个简单的查询,如下所示:

在第一个查询中,您希望productname等于&#34; mouse&#34;或模型等于&#34; m220&#34;的行。这将导致如下简单查询 -

SELECT * FROM <TABLE_NAME> WHERE productname = "mouse" OR model = "m220";

第二个查询更简单。您只需要productname等于&#34; mouse&#34;。

的行
SELECT * FROM <TABLE_NAME> WHERE productname = "mouse";