日期:2014-05-18  浏览次数:20455 次

一个tags多条件匹配查询的问题
比如一个表的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的??


---------------------------------
请各位高手帮忙啊,急!!



------解决方案--------------------
select * from mytbl where charindex( ',A, ', ', '+tags+ ', ')> 0 and charindex( ',D, ', ', '+tags+ ', ')> 0
------解决方案--------------------
這樣也可以吧

where charindex( ',A, ', ', '+tags+ ', ')> 0
and charindex( ',D, ', ', '+tags+ ', ')> 0
------解决方案--------------------
似乎沒有太好的方法。

如果你可以確定A在D前後的話,可以這麼寫

select * from mytbl where tags like '%A%D% '
------解决方案--------------------
使用CharIndex和使用Like的方法差不多
------解决方案--------------------
用like好像不怎麼好,會查出如 A3,D4 的數據