sql >> Database teknologi >  >> RDS >> SQLite

Returner rækker, der kun indeholder ikke-alfanumeriske tegn i SQLite

Her er et eksempel på returnerende rækker, der kun indeholder ikke-alfanumeriske tegn i SQLite.

Ikke-alfanumeriske tegn inkluderer tegnsætningstegn såsom [email protected]#&()–[{}]:;',?/* og symboler som `~$^+=<>“ , såvel som mellemrumstegn som mellemrum eller tabulatortegn.

Eksempeldata

Vi bruger følgende data til vores eksempler:

SELECT c1 FROM t1;

Resultat:

+----------------------+
| 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                |
+----------------------+

Vi kan bruge REGEXP operator med et regulært udtryk for at returnere de rækker, der kun indeholder ikke-alfanumeriske tegn:

SELECT c1 FROM t1
WHERE c1 NOT REGEXP '[A-Za-z0-9]';

Resultat:

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

I dette tilfælde dækkede mit ekskluderingsområde ikke alfanumeriske tegn som é , É og ø . Følgende eksempel udvider området for at udelukke disse tegn fra resultatet:

SELECT c1 FROM t1
WHERE c1 NOT REGEXP '[A-Za-zÀ-Þß-ÿ0-9]';

Resultat:

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

Vores tabel indeholder også en række med den tomme streng. Dette er et ikke-alfanumerisk tegn, og det returneres derfor i ovenstående resultat. Vi kan også bruge NULLIF() funktion til at udelukke den tomme streng fra outputtet:

SELECT c1 FROM t1
WHERE NULLIF(c1, '') NOT REGEXP '[A-Za-zÀ-Þß-ÿ0-9]';

Resultat:

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

  1. Brug MySQL relationsdatabaser på Fedora 13

  2. Unik identifikator (guide) som primær nøgle i databasedesign

  3. Databasevalg til oprettelse af to forbundne tabeller?

  4. Naturlig sortering, der understøtter store tal