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.