Operator LIKE służy do wyszukiwania tekstu pasującego do podanego wzorca. Najczęściej używa się go w klauzuli WHERE, aby filtrować rekordy według fragmentu tekstu.
Najważniejsze znaki specjalne
W SQL, szczególnie w MySQL, przy operatorze LIKE często stosuje się:
%- oznacza dowolny ciąg znaków, także pusty,_- oznacza dokładnie jeden dowolny znak.
Przykłady
SELECT wykonawca
FROM muzyka
WHERE wykonawca LIKE 'C%';
Zapytanie zwróci wykonawców, których nazwa zaczyna się od litery C.
SELECT wykonawca
FROM muzyka
WHERE wykonawca LIKE '%ski';
Zapytanie zwróci wykonawców, których nazwa kończy się na ski.
SELECT wykonawca
FROM muzyka
WHERE wykonawca LIKE 'C%w';
Ten wzorzec oznacza: tekst musi zaczynać się od C, potem może wystąpić dowolny ciąg znaków, ale całość musi kończyć się literą w.
Typowy błąd egzaminacyjny
Wzorzec LIKE 'C%w' nie oznacza „zawiera literę C i literę w gdziekolwiek”. Oznacza dokładnie: początek tekstu to C, koniec tekstu to w.
Jeżeli w tabeli znajduje się wartość Czesław Niemen, to nie pasuje ona do C%w, ponieważ cały tekst kończy się literą n, a nie w.
Zapamiętaj
Operator LIKE porównuje całą wartość z kolumny z podanym wzorcem. Jeśli używasz % tylko w środku wzorca, nadal znaczenie mają pierwszy i ostatni znak wzorca.