当前位置:  开发笔记 > 数据库 > 正文

优化以通配符开头的LIKE表达式

如何解决《优化以通配符开头的LIKE表达式》经验,为你挑选了0个好方法。

我在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"')

有没有办法优化前面的通配符查询?

推荐阅读
低调pasta_730
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有