Oto przykład zwracania wierszy zawierających znaki alfanumeryczne w SQLite.
Znaki alfanumeryczne to znaki alfabetu i znaki numeryczne.
Przykład
Załóżmy, że mamy tabelę z następującymi danymi:
SELECT c1 FROM t1; Wynik:
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
Możemy użyć REGEXP operator z wyrażeniem regularnym, aby zwrócić tylko te wiersze, które zawierają tylko znaki alfanumeryczne:
SELECT c1 FROM t1
WHERE c1 REGEXP '^[A-Za-z0-9]+$'; Wynik:
Music 007
W tym przypadku nie uwzględniłem znaków Unicode, takich jak é , É lub ø w moim zakresie, więc wszystkie wiersze zawierające te znaki są wykluczane z danych wyjściowych.
Musisz upewnić się, że masz odpowiednie znaki, kiedy to robisz.
Oto przykład rozszerzenia zakresu o te znaki:
SELECT c1 FROM t1
WHERE c1 REGEXP '^[A-Za-zÀ-Þß-ÿ0-9]+$'; Wynik:
Music Café 007 é É ø
Znak spacji nie jest alfanumeryczny. Dlatego, aby zwrócić wiersze zawierające spacje, możemy dodać spację do naszego wyrażenia regularnego:
SELECT c1 FROM t1
WHERE c1 REGEXP '^[A-Za-zÀ-Þß-ÿ0-9 ]+$'; Wynik:
Music Live Music Café Café Del Mar 100 Cafés Player 456 007 é É é 123 ø ø 123
Możemy użyć następującego kodu, aby uwzględnić wszystkie wiersze, które zawierają znaki z naszego zakresu (nawet jeśli zawierają również znaki spoza tego zakresu):
SELECT c1 FROM t1
WHERE c1 REGEXP '[A-Za-zÀ-Þß-ÿ0-9]'; Wynik:
Music Live Music Café Café Del Mar 100 Cafés example@sqldat.com 1 + 1 $1.50 Player 456 007 é É é 123 ø ø 123