Załóżmy, że mamy tabelę z trzema kolumnami:
Hobby, Pasja, Praca
Powiedzmy, że w każdym z nich mamy jakieś tam teksty opisujące daną osobę.
Nie ma problemu, gdy przeszukując te dane szukamy dokładnie całej frazy lub któregokolwiek z wpisanych słów. W pierwszym przypadku sprawdzamy, czy w którejkolwiek kolumnie znajduje się szukana fraza, a w drugim dzielimy frazę na słowa po spacjach, a następnie tworzymy serię warunków OR dla każdego ze słów względem każdej kolumny.
Problem pojawia się, gdy chcemy dodać opcję szukania dokładnie wszystkich słów. Powiedzmy, że ktoś wpisał w wyszukiwarkę JAZDA ROWEREM. Zapytanie do bazy powinno uwzględniać tak te rekordy, w których słowa te wystąpiły w pierwszej kolumnie, w drugiej kolumnie, w trzeciej kolumnie, ale także rozdzielnie.
I tu nie wiem jak to zrobić. W jaki sposób zbudować zapytanie, które będzie wydajne i które szukając dwóch słów (lub więcej) zwróci rekordy, w których słowa te występują w dowolnej kolejności w wybranych kolumnach? Ręcznie można by tworzyć wszystkie możliwości, ale przy 5 słwoach o powiedzmy 5 kolumanch zapytanie będzie miało masakrycznie niską wydajność.