DECLARE @t TABLE(name1 VARCHAR(10),name2 VARCHAR(10),name3 varchar(10))
DECLARE @str varchar(1000)
set @str='电影旅游'
INSERT INTO @t
SELECT '玩具','玩具','飞机'  UNION ALL
SELECT '电影','玩具','飞机'  UNION ALL
SELECT '电影','旅游','飞机'select * from @t where Charindex(name1,@str)>0 and Charindex(name2,@str)>0--或者如下,看你自己需求select * from @t where Charindex(name1,@str)>0 or Charindex(name2,@str)>0

解决方案 »

  1.   

    select * from tb
    where name1='电影' and name2='旅游'--or??select * from tb
    where name1=left('电影旅游',2) and name2=right('电影旅游',2)
      

  2.   

    select * from tb where charindex('电影旅游',name1+name2+name3)>0
      

  3.   

    都没有数据显示~主要name3那没有匹配的数据~所以查不出任何东西~要用or的话就是这种结果了
    电影      玩具      飞机 
    玩具      旅游      飞机 
    玩具      旅游      飞机 
    电影      旅游      飞机
      

  4.   


    select * from tb
    where charindex('电影旅游',isnull(name1,'')+isnull(name2,''))>0
      

  5.   

    --加上ISNULL
    select * from @t where charindex('电影旅游',isnull(name1,'')+isnull(name2,'')+isnull(name3,''))>0
      

  6.   

    select * from 表1 where charindex(name1,'电影旅游')>0 and charindex(name2,'电影旅游')>0 
      

  7.   

    create TABLE #TT
    (
    name1 VARCHAR(10),
    name2 VARCHAR(10),
    name3 varchar(10)
    )INSERT INTO #TT
    SELECT '玩具','玩具','飞机'  UNION ALL
    SELECT '电影','玩具','飞机'  UNION ALL
    SELECT '电影','旅游','飞机'  union all
    select '电影','旅游','电影'
    select * from #TTDECLARE @str nvarchar(20)
    set @str=N'电影旅游'
    select * from #TT where name1=substring(@str,0,3) and name2=substring(@str,3,5)
    结果:
    电影 旅游 飞机
    电影 旅游 电影