SQL: найти строки, в которых столбец содержит все заданные слова

У меня есть столбец EntityName, и я хочу, чтобы пользователи могли искать имена, вводя слова, разделенные пробелом. Пробел неявно рассматривается как оператор «И», что означает, что в возвращаемых строках должны быть указаны все слова и не обязательно в заданном порядке.

Например, если у нас есть такие строки:

  1. abba nina pretty balerina
  2. acdc ты меня всю ночь тряс
  3. что ты - я
  4. театр мечты, все о тебе

когда пользователь входит: me you или you me (результаты должны быть эквивалентными), результат содержит строки 2 и 3.

Я знаю, что могу сказать:

WHERE Col1 LIKE '%' + word1 + '%'
  AND Col1 LIKE '%' + word2 + '%'

но я хотел чтобы узнать, есть ли более оптимальное решение.

Для CONTAINS потребуется полнотекстовый индекс, который (по разным причинам) не подходит.

Возможно, Sql2008 имеет некоторые встроенные, полу -скрытое решение для этих случаев?

5
задан veljkoz 27 September 2010 в 14:37
поделиться