我正在努力理解全文搜索&特别是包含。我有一个包含这些记录的表。
NAME
State Place
State of Ohio
State of Oh-debt
State of Ohio Highway
State of Ohio Office
State of Ohit搜索的时候,所有的东西都会回来..
SELECT t.Name FROM tbl t WHERE CONTAINS (t.Name, '"State of"')
SELECT t.Name FROM tbl t WHERE CONTAINS (t.Name, '"State of o"')搜索时返回“哦-debt状态”..
SELECT t.Name FROM tbl t WHERE CONTAINS (t.Name, '"State of oh"')但是什么时候呢?
SELECT t.Name
FROM tbl t
WHERE CONTAINS (t.Name, '"State of ohi"')什么都不会回来。
我不想使用LIKE '%%‘,因为潜在的记录数量很大,会影响性能。他们有办法解决这个问题吗?
发布于 2019-09-26 23:03:27
您可以在Contains语句和*中使用通配符,如下所示:
SELECT t.Name FROM tbl t WHERE CONTAINS (t.Name, '"State of ohi*"')发布于 2019-09-26 21:18:07
也许像这样的东西能帮上忙?
select T.Name from tbl t
where INSTR(upper(T.Name), 'STATE OF OHI', 1) > 0;
--This is the correct sql server function
select T.Name from tbl t
where CHARINDEX(upper(T.Name), 'STATE OF OHI', 1) > 0;https://stackoverflow.com/questions/58116984
复制相似问题