Oversigt :i denne øvelse lærer du, hvordan du bruger SQLite GLOB operatør for at bestemme, om en streng matcher et bestemt mønster.
Introduktion til SQLite GLOB operatør
GLOB operatoren ligner LIKE operatør. GLOB operatoren bestemmer, om en streng matcher et bestemt mønster.
I modsætning til LIKE operatør, GLOB operatoren skifter mellem store og små bogstaver og bruger UNIX-jokertegnene. Derudover er GLOB mønstre har ikke escape-tegn.
Det følgende viser jokertegnene brugt med GLOB operatør:
- Jokertegnet (*) matcher et vilkårligt antal tegn.
- Spørgsmålstegnet (?) jokertegnet matcher nøjagtigt ét tegn.
Ud over disse jokertegn kan du bruge listens jokertegn [] til at matche et tegn fra en liste over tegn. For eksempel [xyz] match ethvert enkelt x-, y- eller z-tegn.
Listens jokertegn tillader også en række tegn, f.eks. matcher [a-z] ethvert enkelt lille bogstav fra a til z. [a-zA-Z0-9] mønster matcher ethvert enkelt alfanumerisk tegn, både små bogstaver og store bogstaver.
Desuden kan du bruge tegnet ^ i begyndelsen af listen for at matche ethvert tegn undtagen ethvert tegn på listen. For eksempel [^0-9] mønster matcher ethvert enkelt tegn undtagen et numerisk tegn.
SQLite GLOB eksempler
Følgende sætning finder spor, hvis navne starter med strengen Man . Mønsteret Man* matcher enhver streng, der starter med Man .
SELECT
trackid,
name
FROM
tracks
WHERE
name GLOB 'Man*';Code language: SQL (Structured Query Language) (sql) Prøv det
Følgende sætning får de spor, hvis navne slutter med Man . Mønsteret *Man matcher enhver streng, der ender med Man .
SELECT
trackid,
name
FROM
tracks
WHERE
name GLOB '*Man';Code language: SQL (Structured Query Language) (sql) Prøv det
Den følgende forespørgsel finder de spor, hvis navne starter med et enkelt tegn (?), efterfulgt af strengen ere og derefter et vilkårligt antal tegn (*).
SELECT
trackid,
name
FROM
tracks
WHERE
name GLOB '?ere*';Code language: SQL (Structured Query Language) (sql) Prøv det
For at finde de numre, hvis navne indeholder numre, kan du bruge listens jokertegn [0-9] som følger:
SELECT
trackid,
name
FROM
tracks
WHERE
name GLOB '*[1-9]*';Code language: SQL (Structured Query Language) (sql) Prøv det
Eller for at finde de spor, hvis navn ikke indeholder noget nummer, indsætter du tegnet ^ i begyndelsen af listen:
SELECT
trackid,
name
FROM
tracks
WHERE
name GLOB '*[^1-9]*';Code language: SQL (Structured Query Language) (sql) Prøv det
Følgende sætning finder de spor, hvis navne slutter med et nummer.
SELECT
trackid,
name
FROM
tracks
WHERE
name GLOB '*[1-9]';Code language: SQL (Structured Query Language) (sql) Prøv det
I denne øvelse har du lært, hvordan du bruger SQLite GLOB operatør for at teste, om en streng matcher et bestemt mønster.