Is it possible to use ContainsTable to get results for more than one column?
Posted
by LockeCJ
on Stack Overflow
See other posts from Stack Overflow
or by LockeCJ
Published on 2010-02-11T17:34:06Z
Indexed on
2010/03/08
22:21 UTC
Read the original article
Hit count: 439
Consider the following table:
People
- FirstName nvarchar(50)
- LastName nvarchar(50)
Let's assume for the moment that this table has a full-text index on it for both columns.
Let's suppose that I wanted to find all of the people named "John Smith" in this table. The following query seems like a perfectly rational way to accomplish this:
SELECT * from People p
INNER JOIN CONTAINSTABLE(People,*,'"John*" AND "Smith*"')
Unfortunately, this will return no results, assuming that there is no record in the People table that contains both "John" and "Smith" in either the FirstName or LastName columns. It will not match a record with "John" in the FirstName column, and "Smith" in the LastName column, or vice-versa.
My question is this: How does one accomplish what I'm trying to do above? Please consider that the example above is simplified. The real table I'm working with has ten columns and the input I'm receiving is a single string which is split up based on standard word breakers (space, dash, etc.)
© Stack Overflow or respective owner