有两个Field1  Field2。 我输入几个关键词,要求搜索得出
1. 在Field1和Field2同时包含这几个关键词.多谢! 

解决方案 »

  1.   

    没有最优,只有更优.select 8 from tb where field1 like '%keys%' and  field2 like '%keys%' 
      

  2.   

    select * from tb where field1 like '%keys%' and field2 like '%keys%'假如有几个keys,是否在循环里加入还是 
    select * from tb where field1 like '%key1%key2...%' and field2 like '%key1%key2%'
    or 
    select * from tb where field1 like '%key1%' and field1 like '%key2%' and filed 1 like '%keyN%' and field2 like '%key1%' and field2 like '%key2% and field2 like '%keyN%'?
      

  3.   

    select * from tb where field1 like '%key1%' and field1 like '%key2%' and filed 1 like '%keyN%' and field2 like '%key1%' and field2 like '%key2% and field2 like '%keyN%'
      

  4.   

    select * from tb
         where (patindex('%keys%',field1)>0 and patindex('%keys%',field2)>0)
      

  5.   


    select * from tb where field1 like '%keys%' and  field2 like '%keys%' 
      

  6.   

    --1. 在Field1和Field2同时包含这几个关键词(用CHARINDEX函数,不用加%了)
    --语法如下:
    SELECT * FROM tb 
     WHERE ( CHARINDEX('keyA1',field1)>0 AND CHARINDEX('keyA2',field1)>0 AND ... AND CHARINDEX('keyAN',field1)>0 )
       AND ( CHARINDEX('keyB1',field2)>0 AND CHARINDEX('keyB2',field1)>0 AND ... AND CHARINDEX('keyBN',field1)>0 ) --举例如下:
    SELECT * FROM tb
     WHERE CHARINDEX('key1',field1)>0 AND CHARINDEX('key1',field2)>0