考虑下表:
人们
- 名字 nvarchar(50)
- 姓氏 nvarchar(50)
让我们暂时假设该表对两列都有全文索引。
假设我想在这张表中找到所有名为“John Smith”的人。以下查询似乎是完成此任务的一种非常合理的方式:
SELECT * from People p
INNER JOIN CONTAINSTABLE(People,*,'"John*" AND "Smith*"')
不幸的是,这将不会返回任何结果,假设People表中没有记录在FirstName 或 LastName 列中同时包含“John”和“Smith”。它不会匹配 FirstName 列中的“John”和 LastName 列中的“Smith”的记录,反之亦然。
我的问题是:如何完成我上面想做的事情?请考虑上面的例子是简化的。我正在使用的真实表有十列,我收到的输入是一个单独的字符串,它根据标准分词器(空格、破折号等)