Klauzula SQL - LIKE

SQL LIKEklauzula służy do porównywania wartości z podobnymi wartościami za pomocą operatorów symboli wieloznacznych. Istnieją dwa symbole wieloznaczne używane w połączeniu z operatorem LIKE.

  • Znak procentu (%)
  • Podkreślenie (_)

Znak procentu oznacza zero, jeden lub wiele znaków. Podkreślenie reprezentuje pojedynczą liczbę lub znak. Symbole te mogą być używane w kombinacjach.

Składnia

Podstawowa składnia% i _ jest następująca -

SELECT FROM table_name
WHERE column LIKE 'XXXX%'

or 

SELECT FROM table_name
WHERE column LIKE '%XXXX%'

or

SELECT FROM table_name
WHERE column LIKE 'XXXX_'

or

SELECT FROM table_name
WHERE column LIKE '_XXXX'

or

SELECT FROM table_name
WHERE column LIKE '_XXXX_'

Możesz łączyć liczbę N warunków za pomocą operatorów AND lub OR. Tutaj XXXX może być dowolną wartością liczbową lub ciągiem znaków.

Przykład

Poniższa tabela zawiera kilka przykładów pokazujących część WHERE mającą inną klauzulę LIKE z operatorami „%” i „_” -

Sr.No. Oświadczenie i opis
1

WHERE SALARY LIKE '200%'

Znajduje wartości zaczynające się od 200.

2

WHERE SALARY LIKE '%200%'

Znajduje wartości, które mają 200 na dowolnej pozycji.

3

WHERE SALARY LIKE '_00%'

Znajduje wszystkie wartości, które mają 00 na drugiej i trzeciej pozycji.

4

WHERE SALARY LIKE '2_%_%'

Znajduje wszystkie wartości, które zaczynają się od 2 i mają co najmniej 3 znaki.

5

WHERE SALARY LIKE '%2'

Znajduje wszystkie wartości kończące się na 2.

6

WHERE SALARY LIKE '_2%3'

Znajduje wszystkie wartości, które mają 2 na drugiej pozycji i kończą się 3.

7

WHERE SALARY LIKE '2___3'

Znajduje wszystkie wartości w liczbie pięciocyfrowej zaczynającej się od 2 i kończącej na 3.

Weźmy prawdziwy przykład, rozważmy tabelę CUSTOMERS zawierającą rekordy pokazane poniżej.

+----+----------+-----+-----------+----------+
| ID | NAME     | AGE | ADDRESS   | SALARY   |
+----+----------+-----+-----------+----------+
|  1 | Ramesh   |  32 | Ahmedabad |  2000.00 |
|  2 | Khilan   |  25 | Delhi     |  1500.00 |
|  3 | kaushik  |  23 | Kota      |  2000.00 |
|  4 | Chaitali |  25 | Mumbai    |  6500.00 |
|  5 | Hardik   |  27 | Bhopal    |  8500.00 |
|  6 | Komal    |  22 | MP        |  4500.00 |
|  7 | Muffy    |  24 | Indore    | 10000.00 |
+----+----------+-----+-----------+----------+

Poniżej znajduje się przykład, w którym zostaną wyświetlone wszystkie rekordy z tabeli CUSTOMERS, w której PŁATNOŚĆ zaczyna się od 200.

SQL> SELECT * FROM CUSTOMERS
WHERE SALARY LIKE '200%';

Dałoby to następujący wynik -

+----+----------+-----+-----------+----------+
| ID | NAME     | AGE | ADDRESS   | SALARY   |
+----+----------+-----+-----------+----------+
|  1 | Ramesh   |  32 | Ahmedabad |  2000.00 |
|  3 | kaushik  |  23 | Kota      |  2000.00 |
+----+----------+-----+-----------+----------+