SQLite
 sql >> Base de Dados >  >> RDS >> SQLite

Retornar linhas que contêm caracteres alfanuméricos no SQLite


Aqui está um exemplo de retorno de linhas que contêm caracteres alfanuméricos no SQLite.

Caracteres alfanuméricos são caracteres alfabéticos e caracteres numéricos.

Exemplo


Suponha que temos uma tabela com os seguintes dados:
SELECT c1 FROM t1;

Resultado:
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 apenas as linhas que contêm apenas caracteres alfanuméricos:
SELECT c1 FROM t1 
WHERE c1 REGEXP '^[A-Za-z0-9]+$';

Resultado:
Music
007  

Nesse caso, não incluí caracteres unicode como é , É , ou ø no meu intervalo e, portanto, todas as linhas que contêm esses caracteres são excluídas da saída.

Você precisará garantir que tenha os caracteres relevantes cobertos ao fazer isso.

Aqui está um exemplo de expansão do intervalo para incluir esses caracteres:
SELECT c1 FROM t1 
WHERE c1 REGEXP '^[A-Za-zÀ-Þß-ÿ0-9]+$';

Resultado:
Music
Café 
007  
é    
É    
ø    

O caractere de espaço não é alfanumérico. Portanto, para retornar linhas que incluem espaços, podemos adicionar um espaço à nossa expressão regular:
SELECT c1 FROM t1 
WHERE c1 REGEXP '^[A-Za-zÀ-Þß-ÿ0-9 ]+$';

Resultado:
Music       
Live Music  
Café        
Café Del Mar
100 Cafés   
Player 456  
007         
é           
É           
é 123       
ø           
ø 123      

Podemos usar o seguinte código para incluir todas as linhas que contêm caracteres do nosso intervalo (mesmo que também contenham caracteres fora desse intervalo):
SELECT c1 FROM t1
WHERE c1 REGEXP '[A-Za-zÀ-Þß-ÿ0-9]';

Resultado:
Music            
Live Music       
Café             
Café Del Mar     
100 Cafés        
[email protected]
1 + 1            
$1.50            
Player 456       
007              
é                
É                
é 123            
ø                
ø 123