sql >> Databasteknik >  >> RDS >> SQLite

SQLite GILLA

Sammanfattning :i den här handledningen kommer du att lära dig hur du frågar efter data baserat på mönstermatchning med SQLite LIKE operatör.

Introduktion till SQLite LIKE operatör

Ibland vet du inte exakt det fullständiga sökordet som du vill fråga. Du kanske till exempel vet att din favoritlåt innehåller ordetelevator men du vet inte exakt namnet.

För att fråga data baserat på partiell information använder du LIKE operatorn i WHERE satsen i SELECT uttalande enligt följande:

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

Observera att du också kan använda LIKE operatorn i WHERE satsen i andra satser som DELETE och UPDATE .

SQLite tillhandahåller två jokertecken för att konstruera mönster. De är procenttecken % och understreck _ :

  1. Procenttecknet % jokertecken matchar en sekvens med noll eller fler tecken.
  2. Understrecket _ jokertecken matchar alla enstaka tecken.

Procenttecknet % exempel på jokertecken

s% mönster som använder jokertecken för procenttecknet ( % ) matchar alla strängar som börjar med s t.ex. son och so .

%er mönster matchar alla strängar som slutar med er som peter , clever , etc.

Och %per% mönster matchar alla strängar som innehåller per såsom percent och peeper .

Understrecket _ exempel på jokertecken

h_nt mönster matchar hunt , hint , etc. __pple mönster matchar topple , supple , tipple , etc.
Observera att SQLite LIKE operatören är skiftlägeskänslig. Det betyder "A" LIKE "a" är sant.

Men för Unicode-tecken som inte är i ASCII-intervallen, LIKE operatorn är skiftlägeskänslig, t.ex. "Ä" LIKE "ä" är falskt.
Om du vill göra LIKE operatören fungerar skiftlägeskänsligt, du måste använda följande PRAGMA:

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

SQLite LIKE exempel

Vi använder tabellen tracks i exempeldatabasen för demonstrationen.

För att hitta spåren vars namn börjar med Wild bokstavlig sträng använder du procenttecknet % jokertecken i slutet av mönstret.

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

Prova det

För att hitta spåren vars namn slutar med Wild ord använder du % jokertecken i början av mönstret.

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

Prova det

För att hitta spåren vars namn innehåller Wild bokstavlig sträng använder du % jokertecken i början och slutet av mönstret:

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

Prova det

Följande sats hittar de spår vars namn innehåller:noll eller fler tecken (% ), följt av Br , följt av ett tecken ( _ ), följt av wn , och följt av noll eller fler tecken ( % ).

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

Prova det

SQLite LIKE med ESCAPE klausul

Om mönstret som du vill matcha innehåller % eller _ , måste du använda ett escape-tecken i en valfri ESCAPE klausul enligt följande:

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

När du anger ESCAPE satsen, LIKE operatören kommer att utvärdera expression som följer ESCAPE nyckelord till en sträng som består av ett enda tecken, eller ett escape-tecken.

Sedan kan du använda detta escape-tecken i mönstret för att inkludera bokstavligt procenttecken (%) eller understreck (_ ). LIKE operatorn utvärderar procenttecknet (% ) eller understreck (_ ) som följer escape-tecknet som en bokstavlig sträng, inte ett jokertecken.

Anta att du vill matcha strängen 10% i en kolumn i en tabell. Däremot tolkar SQLite procentsymbolen % som jokertecken. Därför måste du undkomma denna procentsymbol % med ett escape-tecken:

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

I det här uttrycket är LIKE operatorn tolkar de första % och sista % procenttecknen som jokertecken och det andra procenttecknet som en bokstavlig procentsymbol.

Observera att du kan använda andra tecken som escape-tecken, t.ex. /, @, $.

Tänk på följande exempel:

Skapa först en tabell t som har en kolumn:

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

Därefter infogar du några rader i tabellen 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)

Fråga sedan data från t tabell:

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)

För det fjärde, försök att hitta raden vars värde i c kolumnen innehåller 10% bokstavlig sträng:

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

Det returnerar dock rader vars värden i kolumnen c innehåller 10:

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

För det femte, för att få rätt resultat använder du ESCAPE klausul som visas i följande fråga:

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

Här är resultatuppsättningen:

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

I den här handledningen har du lärt dig hur du använder SQLite LIKE operatör för att fråga data baserat på mönstermatchning med två jokertecken procenttecken (% ) och understreck (_ ).


  1. beräkna timmar baserat på öppettider i Oracle SQL

  2. Spark Dataframes UPSERT till Postgres Table

  3. MySQL Storage Engine Optimization:Konfigurera InnoDB-optimering för hög prestanda

  4. Tillåt alla fjärranslutningar, MySQL