Kilka różnych sposobów na zrobienie tego:
Szybszy (pod względem wydajności) to:select * FROM Table where keyword LIKE '%value%'
Sztuczka w tym polega na umieszczeniu %, który jest symbolem wieloznacznym, mówiącym, że przeszukaj wszystko, co kończy się lub zaczyna od tej wartości.
Bardziej elastyczną, ale (nieco) wolniejszą może być funkcja REGEXP:
Select * FROM Table WHERE keyword REGEXP 'value'
Jest to wykorzystanie mocy wyrażeń regularnych, dzięki czemu możesz uzyskać tak rozbudowane, jak chcesz. Jednak pozostawienie tego, co powyżej, daje coś w rodzaju „Google biednego człowieka”, dzięki czemu wyszukiwanie może być kawałkami i kawałkami ogólnych pól.
Przyklejona część pojawia się, gdy próbujesz wyszukać nazwiska. Na przykład, jeśli wyszukasz SMI, albo znajdziesz nazwę „kowal”. Jednak żaden z nich nie znalazłby słowa „Jon Smith”, gdyby było oddzielone pole imienia i nazwiska. Tak więc musiałbyś wykonać pewną konkatenację, aby wyszukać Jona LUB Smitha LUB Jona Smitha LUB Smitha, Jona. Stamtąd może naprawdę śnieżka.
Oczywiście, jeśli przeprowadzasz jakieś zaawansowane wyszukiwanie, musisz odpowiednio doprecyzować zapytanie. Na przykład, jeśli chcesz wyszukać adres jako pierwszy i ostatni, Twoje zapytanie będzie musiało zostać przetestowane dla każdego z nich:
SELECT * FROM table WHERE first LIKE '%value%' OR last LIKE '%value%' OR address LIKE '%value'