我需要构建一个sqlserver查询,如果文本列有全文索引,它将被使用,否则,查询将降级为LIKE '%word%'
的O(N²)方法?
我相信答案会是这样的:
IF has_full_text_index('mycolumn')
select mytable_id from mytable where contains(mycolumn, 'word')
ELSE
select mytable_id from mytable where mycolumn like '%word%'
ENDIF
查询将由程序生成。查询将始终只有一个单词匹配。检查列是否具有全文索引的测试必须快速。
答案 0 :(得分:1)