Sammanfattning :i denna handledning kommer du att lära dig hur du använder SQLite GLOB
operatorn för att avgöra om en sträng matchar ett specifikt mönster.
Introduktion till SQLite GLOB
operatör
GLOB
operatorn liknar LIKE
operatör. GLOB
operatorn bestämmer om en sträng matchar ett specifikt mönster.
Till skillnad från LIKE
operatorn, GLOB
operatören är skiftlägeskänslig och använder UNIX jokertecken. Dessutom finns GLOB
mönster har inga escape-tecken.
Följande visar jokertecken som används med GLOB
operatör:
- Jokertecken (*) matchar valfritt antal tecken.
- Jokertecken från frågetecknet (?) matchar exakt ett tecken.
Utöver dessa jokertecken kan du använda jokertecken för listan [] för att matcha ett tecken från en lista med tecken. Till exempel [xyz]
matcha valfritt x-, y- eller z-tecken.
Jokertecken i listan tillåter också ett antal tecken, t.ex. [a-z] matchar alla enstaka gemener från a till z. [a-zA-Z0-9]
mönster matchar alla enstaka alfanumeriska tecken, både gemener och versaler.
Dessutom kan du använda tecknet ^
i början av listan för att matcha alla tecken utom alla tecken i listan. Till exempel, [^0-9]
mönster matchar alla enstaka tecken utom ett numeriskt tecken.
SQLite GLOB
exempel
Följande sats hittar spår vars namn börjar med strängen Man
. Mönstret Man*
matchar alla strängar som börjar med Man
.
SELECT
trackid,
name
FROM
tracks
WHERE
name GLOB 'Man*';
Code language: SQL (Structured Query Language) (sql)
Prova det
Följande sats får spåren vars namn slutar med Man
. Mönstret *Man
matchar alla strängar som slutar med Man
.
SELECT
trackid,
name
FROM
tracks
WHERE
name GLOB '*Man';
Code language: SQL (Structured Query Language) (sql)
Prova det
Följande fråga hittar spåren vars namn börjar med ett enda tecken (?), följt av strängen ere
och sedan valfritt antal tecken (*).
SELECT
trackid,
name
FROM
tracks
WHERE
name GLOB '?ere*';
Code language: SQL (Structured Query Language) (sql)
Prova det
För att hitta spåren vars namn innehåller nummer kan du använda jokertecken [0-9]
enligt följande:
SELECT
trackid,
name
FROM
tracks
WHERE
name GLOB '*[1-9]*';
Code language: SQL (Structured Query Language) (sql)
Prova det
Eller för att hitta spåren vars namn inte innehåller något nummer, placerar du tecknet ^
i början av listan:
SELECT
trackid,
name
FROM
tracks
WHERE
name GLOB '*[^1-9]*';
Code language: SQL (Structured Query Language) (sql)
Prova det
Följande sats hittar de spår vars namn slutar med ett nummer.
SELECT
trackid,
name
FROM
tracks
WHERE
name GLOB '*[1-9]';
Code language: SQL (Structured Query Language) (sql)
Prova det
I den här handledningen har du lärt dig hur du använder SQLite GLOB
operatorn för att testa om en sträng matchar ett specifikt mönster.