SQL包含'Ohi状态'不返回'Ohi状态

时间:2019-09-26 12:37:31

标签: sql sql-server tsql full-text-search contains

我正在努力理解全文搜索,尤其是其中的内容。我有一个包含这些记录的表。

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

搜索时会再次显示“欠债状态”。

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'%%',因为潜在的记录数很大并且会影响性​​能。他们有办法解决吗?

2 个答案:

答案 0 :(得分:1)

您可以在包含*的包含语句中使用通配符,例如:


SELECT t.Name     FROM   tbl t    WHERE  CONTAINS (t.Name, '"State of ohi*"')

答案 1 :(得分:0)

也许这样可以帮助您?

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;