Serwisanci dostępni teraz · czynne całą dobę, także w weekendy i świętaWarszawa i okolice · dojazd bezpłatny
Darmowa diagnoza laptopa
Darmowa diagnoza laptopa
Dojazd do klienta bezpłatnie
Dojazd do klienta bezpłatnie
Laptopy zastępcze bezpłatnie
Laptopy zastępcze bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie

LIKE

Termin Definicja
LIKE

LIKE to operator SQL dopasowujący tekst do wzorca z wykorzystaniem znaków wieloznacznych, np. procentu i podkreślenia.

Operator LIKE i dopasowanie tekstu do wzorca

LIKE jest operatorem języka SQL używanym do sprawdzania, czy wartość tekstowa pasuje do określonego wzorca. Najczęściej stosuje się go w klauzuli WHERE, aby ograniczyć wynik zapytania do rekordów, których wybrana kolumna zawiera tekst o określonej budowie. Operator nie porównuje wartości wyłącznie jako identycznych ciągów znaków, lecz interpretuje specjalne znaki wzorca jako symbole wieloznaczne. Dzięki temu można wyszukać między innymi wszystkie nazwy zaczynające się od podanego fragmentu, kończące się określonym rozszerzeniem albo zawierające wskazane słowo.

Podstawowa postać zapytania wygląda następująco: WHERE kolumna LIKE 'wzorzec'. Wzorzec jest stałym tekstem albo wyrażeniem zwracającym tekst. Jeżeli wzorzec nie zawiera znaków wieloznacznych, rezultat zwykle odpowiada porównaniu tekstu z podaną wartością, jednak szczegóły dotyczące wielkości liter, sortowania i znaków diakrytycznych zależą od silnika SQL oraz ustawionej kolacji. Z tego powodu identyczne zapytanie może zachować się inaczej w różnych bazach danych lub przy odmiennych konfiguracjach porównywania tekstu.

Procent, podkreślenie i znaczenie pozycji wzorca

Najczęściej używanym symbolem wieloznacznym w wyrażeniu LIKE jest procent (%). Oznacza on dowolny ciąg znaków, także ciąg pusty. Przykład nazwa LIKE 'raport%' pasuje do wartości rozpoczynających się od tekstu „raport”, takich jak „raport”, „raport_2025” lub „raport końcowy”. Z kolei wzorzec nazwa LIKE '%raport%' wyszukuje wartości, w których wskazany fragment występuje w dowolnym miejscu. Wzorzec nazwa LIKE '%.pdf' może służyć do znalezienia nazw kończących się rozszerzeniem „.pdf”, o ile sposób porównywania tekstu w danym środowisku traktuje wielkość liter zgodnie z oczekiwaniem.

Drugim podstawowym symbolem jest podkreślenie (_), które oznacza dokładnie jeden znak. Wyrażenie kod LIKE 'A_7' może więc pasować do „AB7” albo „A97”, ale nie do „A7” ani „AB17”. Położenie symbolu ma bezpośredni wpływ na wynik: '_%' wymaga co najmniej jednego znaku, natomiast '%_' również wymaga co najmniej jednego znaku na końcu dopasowania, choć pozostała część może być dowolna. Brak symbolu procentu przed lub za tekstem powoduje, że dopasowanie obejmuje całą wartość, a nie tylko jej fragment.

Wykluczanie wzorca, znaki specjalne i wartości NULL

Do odwrócenia warunku służy konstrukcja NOT LIKE. Przykład plik NOT LIKE 'temp%' wybiera wartości, które nie rozpoczynają się od „temp”. Warunek ten nie jest jednak prostym odpowiednikiem wyszukania wszystkich innych tekstów, ponieważ w logice SQL wartość NULL oznacza brak znanej wartości. Porównanie NULL LIKE 'wzorzec' nie daje wyniku prawda ani fałsz, lecz wartość nieokreśloną. Dlatego rekordy z NULL zwykle nie przechodzą przez filtr WHERE, również przy użyciu NOT LIKE. Jeżeli mają być uwzględnione, trzeba jawnie użyć warunku IS NULL.

Procent i podkreślenie nie są traktowane jako zwykłe znaki, gdy występują w miejscu interpretowanym jako wzorzec. Jeżeli wyszukiwanie ma znaleźć dosłowny znak procentu lub podkreślenia, sposób jego zapisania zależy od używanego silnika SQL i składni ucieczki, czyli mechanizmu oznaczania znaków specjalnych jako literalnych. W wielu implementacjach stosuje się klauzulę ESCAPE, na przykład tekst LIKE '%!_%' ESCAPE '!', gdzie wykrzyknik wskazuje, że podkreślenie ma być potraktowane dosłownie. Wartość wzorca pochodząca od użytkownika powinna być przekazywana jako parametr zapytania, a nie dołączana przez zwykłe sklejanie tekstu. Chroni to strukturę zapytania przed zmianą, ale nie zastępuje poprawnego przygotowania znaków wieloznacznych, jeżeli wyszukiwanie ma być literalne.

Wpływ LIKE na wynik i szybkość zapytania

Zapytanie z LIKE może zwracać inny wynik niż oczekiwany, gdy nie zostaną uwzględnione spacje, wielkość liter, znaki narodowe albo reguły kolacji. Wzorzec 'abc%' opisuje początek wartości, natomiast '%abc%' pozwala na dowolny tekst przed i po wyszukiwanym fragmentu. Operator nie jest też pełnoprawnym mechanizmem wyszukiwania językowego: nie rozpoznaje automatycznie odmian wyrazów, synonimów ani znaczenia słów. Przy dużych tabelach filtr z symbolem procentu na początku, na przykład LIKE '%abc', może utrudniać wykorzystanie zwykłego indeksu na kolumnie, ponieważ nie wskazuje stałego początku wartości.

Podczas diagnozowania nieprawidłowego wyniku należy sprawdzić rzeczywistą treść kolumny, typ danych, kolację oraz dokładny wzorzec przekazany do zapytania. Pomocne jest rozdzielenie testu na prostsze przypadki: najpierw porównanie bez symboli wieloznacznych, następnie dopasowanie z %, a potem z _. Trzeba również ustalić, czy aplikacja nie dodaje automatycznie znaków procentu, nie usuwa spacji albo nie zmienia wielkości liter przed wysłaniem zapytania. Warszawskie Pogotowie Komputerowe wykonuje profesjonalną naprawę laptopów i komputerów PC oraz diagnozuje problemy z oprogramowaniem użytkowanym na tych urządzeniach, w tym sytuacje, w których nieprawidłowe filtrowanie danych wynika z konfiguracji aplikacji lub środowiska pracy.

+48 22 100 48 29Zadzwoń teraz · serwisant w 1 godzinę