一个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 的數據