Aqui está um exemplo de retorno de linhas que contêm apenas caracteres não alfanuméricos no SQLite.
Caracteres não alfanuméricos incluem caracteres de pontuação como
[email protected]#&()–[{}]:;',?/*
e símbolos como `~$^+=<>“
, bem como caracteres de espaço em branco, como os caracteres de espaço ou tabulação. Dados de amostra
Usaremos os seguintes dados para nossos exemplos:
SELECT c1 FROM t1;
Resultado:
+----------------------+ | 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 | +----------------------+
Podemos usar o
REGEXP
operador com uma expressão regular para retornar as linhas que contêm apenas caracteres não alfanuméricos:SELECT c1 FROM t1
WHERE c1 NOT REGEXP '[A-Za-z0-9]';
Resultado:
+----------------------+ | c1 | +----------------------+ | () | | [email protected]#&()–[{}]:;',?/* | | `~$^+=<>“ | | | | é | | É | | ø | +----------------------+
Nesse caso, meu intervalo de exclusão não abrangeu caracteres alfanuméricos como
é
, É
, e ø
. O exemplo a seguir expande o intervalo para excluir esses caracteres do resultado:SELECT c1 FROM t1
WHERE c1 NOT REGEXP '[A-Za-zÀ-Þß-ÿ0-9]';
Resultado:
() [email protected]#&()–[{}]:;',?/* `~$^+=<>“
Nossa tabela também contém uma linha com a string vazia. Este é um caractere não alfanumérico e, portanto, é retornado no resultado acima. Também podemos usar o
NULLIF()
função para excluir a string vazia da saída:SELECT c1 FROM t1
WHERE NULLIF(c1, '') NOT REGEXP '[A-Za-zÀ-Þß-ÿ0-9]';
Resultado:
() [email protected]#&()–[{}]:;',?/* `~$^+=<>“