SQLite
 sql >> база данни >  >> RDS >> SQLite

SQLite LIKE

Резюме :в този урок ще научите как да заявявате данни въз основа на съвпадение на шаблони с помощта на SQLite LIKE оператор.

Въведение в SQLite LIKE оператор

Понякога не знаете точно пълната ключова дума, която искате да потърсите. Например, може да знаете, че най-любимата ви песен съдържа думата elevator но не знаете точно името.

За да заявите данни въз основа на частична информация, използвате LIKE оператор в WHERE клауза на SELECT изявление, както следва:

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

Имайте предвид, че можете да използвате и LIKE оператор в WHERE клауза от други изрази като DELETE и UPDATE .

SQLite предоставя два заместващи знака за конструиране на шаблони. Те са със знак за процент % и долна черта _ :

  1. Знакът на процента % заместващият знак съответства на всяка последователност от нула или повече знака.
  2. Подчертаването _ заместващият знак съответства на всеки единичен знак.

Знакът на процента % примери за заместващи знаци

s% шаблон, който използва заместващия знак за процент ( % ) съответства на всеки низ, който започва с s напр.son и so .

%er шаблонът съответства на всеки низ, който завършва с er като peter , clever и др.

И %per% шаблонът съответства на всеки низ, който съдържа per като percent и peeper .

Подчертаването _ примери за заместващи знаци

h_nt модел съответства на hunt , hint , и т.н. __pple модел съвпада с topple , supple , tipple , и т.н.
Имайте предвид, че SQLite LIKE Операторът не е чувствителен към малки и големи букви. Означава "A" LIKE "a" е вярно.

Въпреки това, за Unicode символи, които не са в ASCII диапазоните, LIKE операторът е чувствителен към малки и големи букви, напр. "Ä" LIKE "ä" е невярно.
В случай, че искате да направите LIKE Операторът работи според малките букви, трябва да използвате следната PRAGMA:

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

SQLite LIKE примери

Ще използваме таблицата tracks в примерната база данни за демонстрацията.

За да намерите песните, чиито имена започват с Wild литерален низ, използвате знака за процент % заместващ знак в края на шаблона.

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

Опитайте го

За да намерите песните, чиито имена завършват с Wild word, използвате % заместващ знак в началото на шаблона.

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

Опитайте го

За да намерите песните, чиито имена съдържат Wild литерален низ, използвате % заместващ знак в началото и края на шаблона:

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

Опитайте го

Следният оператор намира песните, чиито имена съдържат:нула или повече знака (% ), последвано от Br , последвано от знак ( _ ), последвано от wn , и последвано от нула или повече знака ( % ).

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

Опитайте го

SQLite LIKE с ESCAPE клауза

Ако шаблонът, който искате да съпоставите, съдържа % или _ , трябва да използвате escape знак в незадължителен ESCAPE клауза, както следва:

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

Когато посочите ESCAPE клауза, LIKE операторът ще оцени expression който следва ESCAPE ключова дума към низ, който се състои от един символ или escape знак.

След това можете да използвате този escape знак в шаблона, за да включите буквален знак за процент (%) или долна черта (_ ). LIKE оператор оценява знака за процент (% ) или долна черта (_ ), който следва escape символа като литерал, а не заместващ знак.

Да предположим, че искате да съпоставите низа 10% в колона на таблица. SQLite обаче интерпретира символа за процент % като заместващ знак. Следователно, трябва да избягвате този символ за процент % използвайки escape знак:

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

В този израз LIKE Операторът интерпретира първия знак за % и последния % процент като заместващи знаци, а втория знак за процент като буквален символ за процент.

Имайте предвид, че можете да използвате други знаци като escape символ, напр., /, @, $.

Помислете за следния пример:

Първо, създайте таблица t която има една колона:

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

След това вмъкнете няколко реда в таблицата 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)

След това потърсете данни от t таблица:

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)

Четвърто, опитайте се да намерите реда, чиято стойност е в c колоната съдържа 10% литерален низ:

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

Той обаче връща редове, чиито стойности в колоната c съдържат 10:

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

Пето, за да получите правилния резултат, използвате ESCAPE клауза, както е показано в следната заявка:

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

Ето набора от резултати:

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

В този урок научихте как да използвате SQLite LIKE оператор за запитване на данни въз основа на съвпадение на шаблон, използвайки два заместващи знака знак за процент (% ) и долна черта (_ ).


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да коригирам URL адреса на доставчика на съдържание, който не е намерен в доставчика на съдържание за Android?

  2. Вмъкване на текуща дата и час в базата данни на SQLite

  3. Добавете външен ключ към съществуваща таблица в SQLite

  4. Не може да се отвори база данни в режим на четене/запис

  5. Android - опитайте се да отворите отново вече затворен обект:SQLiteQuery с помощта на loaderManager