SQLite
 sql >> Baza danych >  >> RDS >> SQLite

SQLite LIKE

Podsumowanie :w tym samouczku dowiesz się, jak wysyłać zapytania o dane w oparciu o dopasowanie wzorców za pomocą SQLite LIKE operatora.

Wprowadzenie do SQLite LIKE operator

Czasami nie znasz dokładnie całego słowa kluczowego, którego chcesz użyć. Na przykład możesz wiedzieć, że Twoja ulubiona piosenka zawiera słowo elevator ale nie znasz dokładnie nazwy.

Aby zapytać o dane na podstawie częściowych informacji, użyj LIKE operator w WHERE klauzula SELECT oświadczenie w następujący sposób:

SELECT
	column_list
FROM
	table_name
WHERE
	column_1 LIKE pattern;Code language: SQL (Structured Query Language) (sql)

Pamiętaj, że możesz również użyć LIKE operator w WHERE klauzula innych instrukcji, takich jak DELETE i UPDATE .

SQLite udostępnia dwa symbole wieloznaczne do konstruowania wzorców. Są to znak procentowy % i podkreśl _ :

  1. Znak procentu % symbol wieloznaczny pasuje do dowolnej sekwencji zerowej lub większej liczby znaków.
  2. Podkreślenie _ symbol wieloznaczny pasuje do dowolnego pojedynczego znaku.

Znak procentu % przykłady symboli wieloznacznych

s% wzorzec, który używa symbolu wieloznacznego znaku procentu ( % ) pasuje do dowolnego ciągu, który zaczyna się od s np. son i so .

%er wzorzec pasuje do dowolnego ciągu, który kończy się na er jak peter , clever itp.

Oraz %per% wzorzec pasuje do dowolnego ciągu, który zawiera per np. percent i peeper .

Podkreślenie _ przykłady symboli wieloznacznych

h_nt wzorzec pasuje do hunt , hint itp. __pple wzorzec pasuje do topple , supple , tipple itp.
Zauważ, że SQLite LIKE operator nie rozróżnia wielkości liter. Oznacza "A" LIKE "a" to prawda.

Jednak w przypadku znaków Unicode, które nie znajdują się w zakresach ASCII, LIKE operator rozróżnia wielkość liter, np. "Ä" LIKE "ä" to fałsz.
Jeśli chcesz zrobić LIKE operator działa z uwzględnieniem wielkości liter, należy użyć następującej PRAGMY:

PRAGMA case_sensitive_like = true;Code language: SQL (Structured Query Language) (sql)

SQLite LIKE przykłady

Użyjemy tabeli tracks w przykładowej bazie danych do demonstracji.

Aby znaleźć utwory, których nazwy zaczynają się od Wild literał ciągu, użyj znaku procentu % symbol wieloznaczny na końcu wzorca.

SELECT
	trackid,
	name	
FROM
	tracks
WHERE
	name LIKE 'Wild%'Code language: SQL (Structured Query Language) (sql)

Wypróbuj

Aby znaleźć utwory, których nazwy kończą się na Wild słowo, używasz % symbol wieloznaczny na początku wzorca.

SELECT
	trackid,
	name
FROM
	tracks
WHERE
	name LIKE '%Wild'Code language: SQL (Structured Query Language) (sql)

Wypróbuj

Aby znaleźć utwory, których nazwy zawierają Wild literał ciągu, używasz % symbol wieloznaczny na początku i na końcu wzorca:

SELECT
	trackid,
	name	
FROM
	tracks
WHERE
	name LIKE '%Wild%';Code language: SQL (Structured Query Language) (sql)

Wypróbuj

Poniższa instrukcja wyszukuje utwory, których nazwy zawierają:zero lub więcej znaków (% ), a następnie Br , po którym następuje znak ( _ ), po którym następuje wn , po którym następuje zero lub więcej znaków ( % ).

SELECT
	trackid,
	name
FROM
	tracks
WHERE
	name LIKE '%Br_wn%';Code language: SQL (Structured Query Language) (sql)

Wypróbuj

SQLite LIKE z ESCAPE klauzula

Jeśli wzorzec, który chcesz dopasować zawiera % lub _ , musisz użyć znaku ucieczki w opcjonalnym ESCAPE klauzula w następujący sposób:

column_1 LIKE pattern ESCAPE expression;
Code language: SQL (Structured Query Language) (sql)

Gdy określisz ESCAPE klauzula LIKE operator oceni expression który następuje po ESCAPE słowo kluczowe do łańcucha, który składa się z jednego znaku lub znaku zmiany znaczenia.

Następnie możesz użyć tego znaku zmiany znaczenia we wzorcu, aby dołączyć dosłowny znak procentu (%) lub podkreślenie (_ ). LIKE operator oblicza znak procentu (% ) lub podkreślenie (_ ), który następuje po znaku ucieczki jako dosłowny ciąg, a nie symbol wieloznaczny.

Załóżmy, że chcesz dopasować ciąg 10% w kolumnie tabeli. Jednak SQLite interpretuje symbol procentu % jako symbol wieloznaczny. Dlatego musisz zmienić znaczenie symbolu procentu % za pomocą znaku ucieczki:

column_1 LIKE '%10\%%' ESCAPE '\';Code language: SQL (Structured Query Language) (sql)

W tym wyrażeniu LIKE operator interpretuje pierwszy i ostatni znak procentu % jako symbol wieloznaczny, a drugi znak procenta jako dosłowny symbol procenta.

Pamiętaj, że możesz użyć innych znaków jako znaku ucieczki, np. /, @, $.

Rozważ następujący przykład:

Najpierw utwórz tabelę t który ma jedną kolumnę:

CREATE TABLE t(
	c TEXT
);Code language: SQL (Structured Query Language) (sql)

Następnie wstaw kilka wierszy do tabeli t :

INSERT INTO t(c)
VALUES('10% increase'),
	('10 times decrease'),
	('100% vs. last year'),
	('20% increase next year');Code language: SQL (Structured Query Language) (sql)

Następnie zapytaj o dane z t tabela:

SELECT * FROM t;Code language: SQL (Structured Query Language) (sql)
c                     
----------------------
10% increase          
10 times decrease     
100% vs. last year    
20% increase next yearCode language: Shell Session (shell)

Po czwarte, spróbuj znaleźć wiersz, którego wartość w c kolumna zawiera 10% dosłowny ciąg:

SELECT c 
FROM t 
WHERE c LIKE '%10%%';Code language: SQL (Structured Query Language) (sql)

Zwraca jednak wiersze, których wartości w kolumnie c zawierają 10:

c                 
------------------
10% increase      
10 times decrease 
100% vs. last year

Po piąte, aby uzyskać poprawny wynik, użyj ESCAPE klauzula, jak pokazano w następującym zapytaniu:

SELECT c 
FROM t 
WHERE c LIKE '%10\%%' ESCAPE '\';Code language: SQL (Structured Query Language) (sql)

Oto zestaw wyników:

c           
------------
10% increaseCode language: Shell Session (shell)

W tym samouczku nauczyłeś się korzystać z SQLite LIKE operator do zapytania o dane na podstawie dopasowania wzorca za pomocą dwóch znaków wieloznacznych znaku procentu (% ) i podkreślenie (_ ).


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kopiowanie sqlite w zasobach Android Studio nie działa

  2. Czy możliwa jest baza danych Android SQLite z bazą danych w określonej lokalizacji?

  3. SQLite LIKE

  4. Sformatuj liczbę jako walutę w SQLite

  5. SQL:Sortuj według priorytetu, ale wstaw 0 na końcu