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]#&()–[{}]:;',?/* `~$^+=<>“