Oto przykład zwracania wierszy zawierających tylko znaki niealfanumeryczne w SQLite.
Znaki inne niż alfanumeryczne obejmują znaki interpunkcyjne, takie jak example@sqldat.com#&()–[{}]:;',?/* i symbole takie jak `~$^+=<>“ , a także znaki odstępu, takie jak spacja lub tabulatory.
Przykładowe dane
W naszych przykładach użyjemy następujących danych:
SELECT c1 FROM t1; Wynik:
+----------------------+
| c1 |
+----------------------+
| 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 do zwracania wierszy zawierających tylko znaki niealfanumeryczne:
SELECT c1 FROM t1
WHERE c1 NOT REGEXP '[A-Za-z0-9]'; Wynik:
+----------------------+
| c1 |
+----------------------+
| () |
| example@sqldat.com#&()–[{}]:;',?/* |
| `~$^+=<>“ |
| |
| é |
| É |
| ø |
+----------------------+
W tym przypadku mój zakres wykluczeń nie obejmował znaków alfanumerycznych, takich jak é , É i ø . Poniższy przykład rozszerza zakres, aby wykluczyć te znaki z wyniku:
SELECT c1 FROM t1
WHERE c1 NOT REGEXP '[A-Za-zÀ-Þß-ÿ0-9]'; Wynik:
()
example@sqldat.com#&()–[{}]:;',?/*
`~$^+=<>“
Nasza tabela zawiera również wiersz z pustym ciągiem. Jest to znak niealfanumeryczny, więc jest zwracany w powyższym wyniku. Możemy również użyć NULLIF() funkcja wyłączająca pusty ciąg z wyjścia:
SELECT c1 FROM t1
WHERE NULLIF(c1, '') NOT REGEXP '[A-Za-zÀ-Þß-ÿ0-9]'; Wynik:
()
example@sqldat.com#&()–[{}]:;',?/*
`~$^+=<>“