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 [email protected] 1 + 1 () [email protected]#&()–[{}]:;',?/* `~$^+=<>“ $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 [email protected] 1 + 1 $1.50 Player 456 007 é É é 123 ø ø 123