Operator LIKE w SQL

Słownik kwalifikacji INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych

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.