有一个city的表中,其中有一个字段cityname(varchar)放置的数据是这样的
insert into city values('1102,1211,1540,1103,')
我要检索1101 和1211的数据(可能更多,因为这里可以复选)
我这样写是否合理?select * from city cityname like %1102% or cityname like %1211% 大约有几十万条数据,我在cityname上加了索引是否有更好的方法?谢谢
insert into city values('1102,1211,1540,1103,')
我要检索1101 和1211的数据(可能更多,因为这里可以复选)
我这样写是否合理?select * from city cityname like %1102% or cityname like %1211% 大约有几十万条数据,我在cityname上加了索引是否有更好的方法?谢谢
select * from city cityname like %1102%
UNION
select * from city cityname like %1211%
使用不到索引
2、可以用全文索引试试。
http://blog.csdn.net/HEROWANG/archive/2009/08/11/4436605.aspx
from city
where
(patindex('%1102%',cityname)>0
or patindex('%1211%',cityname)>0)
UNION ALL
select * from city ','+cityname like ',1211,%'
UNION ALL
select * from city CHARINDEX(',1211,' ,','+cityname )>0 看一下索引执行计划