Zde je příklad vracení řádků, které obsahují alfanumerické znaky v SQLite.
Alfanumerické znaky jsou abecední znaky a číselné znaky.
Příklad
Předpokládejme, že máme tabulku s následujícími údaji:
SELECT c1 FROM t1; Výsledek:
Music
Live Music
Café
Café Del Mar
100 Cafés
example@sqldat.com
1 + 1
()
example@sqldat.com#&()–[{}]:;',?/*
`~$^+=<>“
$1.50
Player 456
007
null
é
É
é 123
ø
ø 123
Můžeme použít REGEXP operátor s regulárním výrazem, který vrátí pouze ty řádky, které obsahují pouze alfanumerické znaky:
SELECT c1 FROM t1
WHERE c1 REGEXP '^[A-Za-z0-9]+$'; Výsledek:
Music 007
V tomto případě jsem nezahrnul znaky Unicode jako é , É , nebo ø v mém rozsahu, a tak jsou z výstupu vyloučeny všechny řádky, které tyto znaky obsahují.
Při tom se musíte ujistit, že máte pokryty relevantní znaky.
Zde je příklad rozšíření rozsahu o tyto znaky:
SELECT c1 FROM t1
WHERE c1 REGEXP '^[A-Za-zÀ-Þß-ÿ0-9]+$'; Výsledek:
Music Café 007 é É ø
Znak mezery není alfanumerický. Proto, abychom vrátili řádky, které obsahují mezery, můžeme do našeho regulárního výrazu přidat mezeru:
SELECT c1 FROM t1
WHERE c1 REGEXP '^[A-Za-zÀ-Þß-ÿ0-9 ]+$'; Výsledek:
Music Live Music Café Café Del Mar 100 Cafés Player 456 007 é É é 123 ø ø 123
Následující kód můžeme použít k zahrnutí všech řádků, které obsahují znaky z našeho rozsahu (i když také obsahují znaky mimo tento rozsah):
SELECT c1 FROM t1
WHERE c1 REGEXP '[A-Za-zÀ-Þß-ÿ0-9]'; Výsledek:
Music Live Music Café Café Del Mar 100 Cafés example@sqldat.com 1 + 1 $1.50 Player 456 007 é É é 123 ø ø 123