比如一个表的Tags字段中可能包含‘A,A2,A3,B,B3,C,D,D4,5D,E,EA,DE’等关键字。而我需要查询即包含所有A,又包含所有D的记录,我写的语法如下:
select * from mytbl where tags like '%A%' and tags like '%D%'
我的问题是:
这样做的效率是不是太差了,有没有更好的解决办法一句搞定,不需要再AND的??
---------------------------------
请各位高手帮忙啊,急!!

解决方案 »

  1.   

    select * from mytbl where charindex(',A,',','+tags+',')>0 and  charindex(',D,',','+tags+',')>0
      

  2.   

    這樣也可以吧where charindex(',A,',','+tags+',')>0
    and   charindex(',D,',','+tags+',')>0
      

  3.   

    似乎沒有太好的方法。如果你可以確定A在D前後的話,可以這麼寫select * from mytbl where tags like '%A%D%'
      

  4.   

    使用CharIndex和使用Like的方法差不多
      

  5.   

    用like好像不怎麼好,會查出如 A3,D4 的數據
      

  6.   

    其實是一樣的,加上,就可以select * from mytbl where ',' + tags + ',' like '%,A,%,D,%'