poniedziałek, 24 września 2018

SQLite – klauzula LIKE


SQLite – klauzula LIKE

Operator SQLite LIKE służy do dopasowywania wartości tekstowych do wzorca przy użyciu symboli wieloznacznych. Jeśli wyrażenie wyszukiwania można dopasować do wyrażenia wzoru, operator LIKE zwróci wartość true, czyli 1. Są dwa symbole wieloznaczne używane w połączeniu z operatorem LIKE:
  • Znak procentu (%)
  • Podkreślenie (_)
Znak procentu reprezentuje zero, jedną lub wiele cyfr lub znaków. Podkreślenie oznacza pojedynczą liczbę lub znak. Symbole te można stosować w kombinacjach.
Składnia
Poniżej znajduje się podstawowa składnia % i _.
SELECT FROM nazwa_tabeli
WHERE kolumna LIKE 'XXXX%'
lub  
SELECT FROM nazwa_tabeli
WHERE kolumna LIKE '%XXXX%'
lub
SELECT FROM nazwa_tabeli
WHERE kolumna LIKE 'XXXX_'
lub
SELECT FROM nazwa_tabeli
WHERE kolumna LIKE '_XXXX'
lub
SELECT FROM nazwa_tabeli
WHERE kolumna LIKE '_XXXX_'
Można łączyć N wiele warunków korzystając z operatorów AND lub OR. W tym przypadku XXXX może być dowolną wartością numeryczną lub tekstową.
Przykład
Poniższa tabela zawiera listę przykładów, w których WHERE ma inną klauzulę LIKE z operatorami "%" i "_".
L.p.
Wyrażenie i opis
1
WHERE PENSJA LIKE '200%'
Znajduje wszystkie wartości zaczynające się od 200
2
WHERE PENSJA LIKE '%200%'
Znajduje dowolne wartości, które mają 200 w dowolnej pozycji
3
WHERE PENSJA LIKE '_00%'
Znajduje wszystkie wartości, które mają 00 na drugiej i trzeciej pozycji
4
WHERE PENSJA LIKE '2_%_%'
Znajduje wszystkie wartości zaczynające się od 2 i mające co najmniej 3 znaki
5
WHERE PENSJA LIKE '%2'
Znajduje wszystkie wartości, które kończą się na 2
6
WHERE SALARY LIKE '_2%3'
Znajduje wszystkie wartości, które mają 2 na drugiej pozycji i kończy się na 3
7
WHERE PENSJA LIKE '2___3'
Znajduje dowolne wartości w pięciocyfrowym numerze zaczynającym się od 2, a kończącym na 3
Weźmy prawdziwy przykład, rozważmy tabelę PRACOWNIK z następującymi rekordami.
id          nazwisko    wiek        adres       pensja
----------  ----------  ----------  ----------  ----------
1           Adam        32          Warszawa    2000.0
2           Piotr       25          Piaseczno   1500.0
3           Tomasz      23          Grodzisk    2000.0
4           Marek       25          Płock       6500.0
5           Dawid       27          Halinów     8500.0
6           Katarzyna   22          Marki       4500.0
7           Jan         24          Kraków      4500.0
Poniżej znajduje się przykład, który wyświetli wszystkie rekordy z tabeli PRACOWNIK, gdzie WIEK rozpoczyna się od 2.
sqlite> SELECT * FROM PRACOWNIK WHERE WIEK LIKE '2%';
Spowoduje to uzyskanie następującego wyniku.
id          nazwisko    wiek        adres       pensja
----------  ----------  ----------  ----------  ----------
2           Piotr       25          Piaseczno   1500.0
3           Tomasz      23          Grodzisk    2000.0
4           Marek       25          Płock       6500.0
5           Dawid       27          Halinów     8500.0
6           Katarzyna   22          Marki       4500.0
7           Jan         24          Kraków      4500.0
Poniżej znajduje się przykład, który wyświetli wszystkie rekordy z tabeli PRACOWNIK, gdzie ADRES będzie zawierał LITERĘ (o) wewnątrz tekstu.
sqlite> SELECT * FROM PRACOWNIK WHERE ADRES  LIKE '%O%';
Spowoduje to uzyskanie następującego wyniku.
id          nazwisko    wiek        adres       pensja
----------  ----------  ----------  ----------  ----------
2           Piotr       25          Piaseczno   1500.0
3           Tomasz      23          Grodzisk    2000.0
4           Marek       25          Płock       6500.0


Brak komentarzy:

Prześlij komentarz