我在SQL Server数据库中有一个表,其中包含一个地址字段(例如,1 Farnham Road,Guildford,Surrey,GU2XFF),我想在搜索字符串之前和之后使用通配符进行搜索.
SELECT * FROM Table WHERE Address_Field LIKE '%nham%'
我在这张表中有大约200万条记录,我发现查询需要5-10秒,这并不理想.我相信这是因为前面的通配符.
我认为我说的是,由于前面的通配符,任何索引都不会用于搜索操作.
使用全文搜索和CONTAINS是不可能的,因为我想搜索单词的后半部分(我知道你可以在下面的查询中替换Guil*的搜索字符串,这将返回结果).当然运行以下返回没有结果
SELECT * FROM Table WHERE CONTAINS(Address_Field, '"nham"')
有没有办法优化前面的通配符查询?