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