Här är ett exempel på returnerande rader som endast innehåller icke-alfanumeriska tecken i SQLite.
Icke-alfanumeriska tecken inkluderar skiljetecken som [email protected]#&()–[{}]:;',?/*
och symboler som `~$^+=<>“
, såväl som blanksteg som mellanslag eller tabbtecken.
Exempeldata
Vi använder följande data för våra exempel:
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 använda REGEXP
operator med ett reguljärt uttryck för att returnera de rader som endast innehåller icke-alfanumeriska tecken:
SELECT c1 FROM t1
WHERE c1 NOT REGEXP '[A-Za-z0-9]';
Resultat:
+----------------------+ | c1 | +----------------------+ | () | | [email protected]#&()–[{}]:;',?/* | | `~$^+=<>“ | | | | é | | É | | ø | +----------------------+
I det här fallet täckte inte mitt uteslutningsintervall alfanumeriska tecken som é
, É
och ø
. Följande exempel utökar intervallet för att utesluta dessa tecken från resultatet:
SELECT c1 FROM t1
WHERE c1 NOT REGEXP '[A-Za-zÀ-Þß-ÿ0-9]';
Resultat:
() [email protected]#&()–[{}]:;',?/* `~$^+=<>“
Vår tabell innehåller också en rad med den tomma strängen. Detta är ett icke-alfanumeriskt tecken, och därför returneras det i ovanstående resultat. Vi kan också använda NULLIF()
funktion för att utesluta den tomma strängen från utdata:
SELECT c1 FROM t1
WHERE NULLIF(c1, '') NOT REGEXP '[A-Za-zÀ-Þß-ÿ0-9]';
Resultat:
() [email protected]#&()–[{}]:;',?/* `~$^+=<>“