SQLite
 sql >> Baza danych >  >> RDS >> SQLite

Zwracaj wiersze zawierające tylko znaki niealfanumeryczne w SQLite

Oto przykład zwracania wierszy zawierających tylko znaki niealfanumeryczne w SQLite.

Znaki inne niż alfanumeryczne obejmują znaki interpunkcyjne, takie jak [email protected]#&()–[{}]:;',?/* 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            |
| [email protected]    |
| 1 + 1                |
| ()                   |
| [email protected]#&()–[{}]:;',?/*   |
| `~$^+=<>“            |
| $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                   |
+----------------------+
| ()                   |
| [email protected]#&()–[{}]:;',?/*   |
| `~$^+=<>“            |
|                      |
| é                    |
| É                    |
| ø                    |
+----------------------+

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:

()                
[email protected]#&()–[{}]:;',?/*
`~$^+=<>“         
                  

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:

()                
[email protected]#&()–[{}]:;',?/*
`~$^+=<>“         
                  

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Integracja SQLCipher z greenDAO

  2. Biblioteka Android Room nie może skopiować bazy danych z zasobu

  3. Szybki post o SQLite UPSERT i nowej klauzuli RETURNING.

  4. Co to jest SQLite?

  5. Jakie są koszty ogólne korzystania z AUTOINCREMENT dla SQLite na Androidzie?