Jak wprowadzić do tego zapytania LIKE tak aby szukało mi również nazwisk imion zawierajacych jakąś frazę np. "kow" bo teraz jak nie ma takeigo nazwiska to nic nie wyszukuje a chciałbym aby zwracało kowalski.
Widzę obecnie w programach, że oczekuje się od użytkownika nieco więcej sprytu i daje mu się też większą precyzję wyszukiwania. Opisujesz pole wyszukiwania, że wyszukuje imię nazwisko z możliwością użycia procentu jako dowolnego znaku. Wtedy już ty nie dodajesz tego procentu, tylko użytkownik sam decyduje, czy go chce czy nie. Jak wrzucił procent, robisz like na imie+nazwisko
, jak nie dał procentu - wyszukujesz efektywnie twoim (dla mnie też nowość) warunkiem IN
.
Edit: Jeżeli nie chcemy przelatywać całej bazy danych przy każdym wyszukiwaniu na procencie, musimy użyć full-text search.
Furthermore, a LIKE query against a large amount of unstructured text data is much slower than an equivalent full-text query against the same data. A LIKE query against millions of rows of text data can take minutes to return; whereas a full-text query can take only seconds or less against the same data, depending on the number of rows that are returned.
Full-text search ma pewne ograniczenia w stosunku do LIKE. Nie zadziała suffix ani infix search, np. *ski
, *arci*
. Obsługuje tylko wyszukiwanie całych słów albo po prefiksie (Mar*
). Ale w praktyce więcej nie trzeba.