SQL包含 - 仅在开始时匹配

Uma*_*air 1 sql t-sql sql-server full-text-search

出于某种原因,我无法在Google上找到答案!但是使用SQL包含函数我怎么能告诉它从字符串的开头开始,即我正在寻找等同于LIKE'some_term%'的全文.

我知道我可以使用,但由于我已经设置了全文索引,并且该表预计有数千行,我更愿意使用Contains.

谢谢!

Joh*_*arr 7

你想要这样的东西:

如果术语以相同的字符开头,则可以使用"前缀术语",而不是指定多个术语.要使用前缀术语,请指定起始字符,然后在术语末尾添加星号(*)通配符.将前缀术语括在双引号中.以下语句返回与前一个相同的结果.

-- Search for all terms that begin with 'storm'
SELECT StormID, StormHead, StormBody FROM StormyWeather
WHERE CONTAINS(StormHead, '"storm*"')
Run Code Online (Sandbox Code Playgroud)

http://www.simple-talk.com/sql/learn-sql-server/full-text-indexing-workbench/


Fer*_*eti 6

您可以将CONTAINS与LIKE子查询一起仅用于匹配开始:

SELECT * 
FROM (
    SELECT * 
    FROM myTable WHERE CONTAINS('"Alice in wonderland"')
) AS S1 
WHERE S1.edition LIKE 'Alice in wonderland%' 
Run Code Online (Sandbox Code Playgroud)

这样,慢速LIKE查询将针对较小的集合运行