我正在努力理解全文搜索,尤其是其中的内容。我有一个包含这些记录的表。
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'%%',因为潜在的记录数很大并且会影响性能。他们有办法解决吗?
答案 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;