Database
 sql >> Baza danych >  >> RDS >> Database

Jak używać LIKE w SQL

Problem:

Chcesz znaleźć podciąg pasujący do wzorca w ciągu.

Przykład:

Nasza baza danych zawiera tabelę o nazwie klient z danymi w następujących kolumnach:id , first_name , last_name i city .

id imię nazwisko miasto
1 Alan Watson Madryt
2 Lisa Czarny Singapur
3 Laura Williams Seattle
4 Mediolan Cegła Seul

Zobaczmy kilka przykładów dopasowania wzorców w SQL.

Przykład 1:

Wyświetlmy imię, nazwisko i miasto każdego klienta, którego nazwa miasta zaczyna się na literę „S”.

Rozwiązanie:

SELECT last_name, first_name, city  
FROM customer
WHERE city LIKE 'S%';
nazwisko imię miasto
Lisa Czarny S zignorować
Mediolan Cegła S eul
Laura Williams S jedzenie

Użyliśmy symbolu wieloznacznego %, który reprezentuje zero lub więcej nieznanych znaków. Tego symbolu wieloznacznego można użyć w dowolnym miejscu ciągu.

Przykład 2:

Pokażmy imię, nazwisko i miasto każdego klienta, którego nazwa miasta zawiera dokładnie pięć znaków.

Rozwiązanie:

SELECT last_name, first_name, city  
FROM customer
WHERE city LIKE '_____';

Oto wynik:

nazwisko imię miasto
Mediolan Cegła Seul

Symbol wieloznaczny podkreślenia może służyć do reprezentowania pojedynczego nieznanego znaku. Tak więc, używając pięciu z nich z rzędu, możemy reprezentować wszystkie łańcuchy o długości pięciu znaków. W naszym przykładzie jedynym miastem pasującym do tego opisu jest Seul.

Przykład 3:

Pokażmy imię, nazwisko i miasto każdego klienta, którego miasto zaczyna się na literę „S” i ma literę „o” jako przedostatni znak.

Rozwiązanie:

SELECT last_name, first_name, city  
FROM customer
WHERE city LIKE 'S%o__';

Oto wynik:

nazwisko imię miasto
Lisa Czarny S ingapo ponownie
Mediolan Cegła S eo ul

Zapytanie zwróciło tylko dwa rekordy:Lisa Black z S ingapo re i Milan Brick z S eo ul. Te miasta pasują do podanego wzorca. Tutaj połączyliśmy oba symbole wieloznaczne, aby wygenerować bardziej konkretny wzorzec:wszystkie ciągi zaczynające się wielką literą „S” i zawierające dowolną liczbę innych znaków po niej, o ile trzeci znak jest małą literą „o”. '

Dyskusja:

Jeśli chcesz wybrać rekordy, w których ciąg pasuje do określonego wzorca, możesz użyć LIKE klauzula jako warunek w WHERE klauzula. Po WHERE , podaj nazwę kolumny (np. city ), po którym następuje LIKE klauzula określająca wzorzec ciągu (np. 'S%o__' ) do wyszukania.

Jak widzieliśmy w przykładach, możesz użyć dwóch znaków specjalnych znanych jako wildcards do reprezentowania nieznanych postaci:

  • Symbol wieloznaczny „%” oznacza zero lub więcej znaków.
  • Symbol wieloznaczny „_” oznacza dowolny pojedynczy znak.

Możesz połączyć te symbole wieloznaczne, aby osiągnąć naprawdę potężne wyniki. Możesz także połączyć więcej niż jeden LIKE stan :schorzenie. Na koniec możesz użyć NOT operator, aby znaleźć ciągi, których nie pasują do podanego wzorca.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Operator SQL OR dla początkujących

  2. Podłączanie aplikacji 64-bitowej do Acomba

  3. VLDB w wieku 20 lat:będziesz potrzebować większego…

  4. Korzystanie z funkcji T-SQL DATEADD, DATEDIFF i DATEPART w prostych terminach

  5. 9 najczęstszych błędów projektowania bazy danych