Shrnutí :v tomto tutoriálu se naučíte používat SQLite GLOB
operátor k určení, zda řetězec odpovídá určitému vzoru.
Úvod do SQLite GLOB
operátor
GLOB
operátor je podobný LIKE
operátor. GLOB
operátor určuje, zda řetězec odpovídá určitému vzoru.
Na rozdíl od LIKE
operátor GLOB
operátor rozlišuje malá a velká písmena a používá zástupné znaky UNIXu. Kromě toho GLOB
vzory nemají znaky escape.
Níže jsou uvedeny zástupné znaky používané s GLOB
operátor:
- Zástupný znak hvězdička (*) odpovídá libovolnému počtu znaků.
- Zástupný znak otazníku (?) odpovídá přesně jednomu znaku.
Kromě těchto zástupných znaků můžete použít zástupný znak seznamu [] k přiřazení jednoho znaku ze seznamu znaků. Například [xyz]
odpovídat libovolnému jednotlivému znaku x, y nebo z.
Zástupný znak seznamu také umožňuje rozsah znaků, např. [a-z] odpovídá jakémukoli malému znaku od a do z. [a-zA-Z0-9]
vzor odpovídá jakémukoli jednotlivému alfanumerickému znaku, jak malým, tak velkým.
Kromě toho můžete použít znak ^
na začátku seznamu, aby odpovídal libovolnému znaku kromě jakéhokoli znaku v seznamu. Například [^0-9]
vzor odpovídá libovolnému jednotlivému znaku kromě číselného znaku.
SQLite GLOB
příklady
Následující příkaz najde stopy, jejichž názvy začínají řetězcem Man
. Vzor Man*
odpovídá libovolnému řetězci, který začíná Man
.
SELECT
trackid,
name
FROM
tracks
WHERE
name GLOB 'Man*';
Code language: SQL (Structured Query Language) (sql)
Zkuste to
Následující příkaz obsahuje skladby, jejichž názvy končí Man
. Vzor *Man
odpovídá libovolnému řetězci, který končí Man
.
SELECT
trackid,
name
FROM
tracks
WHERE
name GLOB '*Man';
Code language: SQL (Structured Query Language) (sql)
Zkuste to
Následující dotaz najde skladby, jejichž názvy začínají libovolným jedním znakem (?), za kterým následuje řetězec ere
a poté libovolný počet znaků (*).
SELECT
trackid,
name
FROM
tracks
WHERE
name GLOB '?ere*';
Code language: SQL (Structured Query Language) (sql)
Zkuste to
Chcete-li najít skladby, jejichž názvy obsahují čísla, můžete použít zástupný znak seznamu [0-9]
takto:
SELECT
trackid,
name
FROM
tracks
WHERE
name GLOB '*[1-9]*';
Code language: SQL (Structured Query Language) (sql)
Zkuste to
Nebo pro nalezení skladeb, jejichž název neobsahuje žádné číslo, umístíte znak ^
na začátku seznamu:
SELECT
trackid,
name
FROM
tracks
WHERE
name GLOB '*[^1-9]*';
Code language: SQL (Structured Query Language) (sql)
Zkuste to
Následující příkaz najde skladby, jejichž názvy končí číslem.
SELECT
trackid,
name
FROM
tracks
WHERE
name GLOB '*[1-9]';
Code language: SQL (Structured Query Language) (sql)
Zkuste to
V tomto tutoriálu jste se naučili používat SQLite GLOB
operátor, který otestuje, zda řetězec odpovídá určitému vzoru.