我想使用全文搜索在列中查找以“ma”开头的单词 我使用了CONTAINS(IDC_NOM,“'firstName *”'),但是如果我在列中有一个名称,例如:'ffff mate',它会返回此行,因为第二个世界以'ma'开头。我想只搜索第一个单词以'ma'开头的列。
答案 0 :(得分:0)
使用类似查询
SELECT * FROM Customers
WHERE firstNameLIKE'%ma%&#39 ;;
答案 1 :(得分:0)
这样做的好方法就是
select * from Users
where contains(substring(Name, 0, CHARINDEX(' ', Name)),'user')
但contains包含的第一个参数中不允许任何函数。另一种方式可能是
select * from
(
select substring(Name, 0, CHARINDEX(' ', Name)) as Name
from Users
) A
where contains(Name,'user')
但是这也给出了列不是全文索引的错误,因此不能使用contains。
所以基本上你不能在列上使用带有条件的包,因为索引应用于整个列。我知道包含比运算符更快,所以你想使用它但它不接受条件。您的条件的查询将是
select * from Users
where substring(Name, 0, CHARINDEX(' ', Name)) like '%user%';