SQLite
 sql >> Base de données >  >> RDS >> SQLite

Renvoyer des lignes contenant des caractères alphanumériques dans SQLite

Voici un exemple de retour de lignes contenant des caractères alphanumériques dans SQLite.

Les caractères alphanumériques sont des caractères alphabétiques et des caractères numériques.

Exemple

Supposons que nous ayons un tableau avec les données suivantes :

SELECT c1 FROM t1;

Résultat :

Music             
Live Music        
Café              
Café Del Mar      
100 Cafés         
[email protected] 
1 + 1             
()                
[email protected]#&()–[{}]:;',?/*
`~$^+=<>“         
$1.50             
Player 456        
007               
null              
                  
é                 
É                 
é 123             
ø                 
ø 123             

Nous pouvons utiliser le REGEXP opérateur avec une expression régulière pour renvoyer uniquement les lignes contenant uniquement des caractères alphanumériques :

SELECT c1 FROM t1 
WHERE c1 REGEXP '^[A-Za-z0-9]+$';

Résultat :

Music
007  

Dans ce cas, je n'ai pas inclus de caractères Unicode comme é , É , ou ø dans ma plage, et donc toutes les lignes contenant ces caractères sont exclues de la sortie.

Vous devrez vous assurer que vous avez couvert les caractères pertinents lors de cette opération.

Voici un exemple d'extension de la plage pour inclure ces caractères :

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

Résultat :

Music
Café 
007  
é    
É    
ø    

Le caractère espace n'est pas alphanumérique. Par conséquent, pour renvoyer des lignes contenant des espaces, nous pouvons ajouter un espace à notre expression régulière :

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

Résultat :

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

Nous pouvons utiliser le code suivant pour inclure toutes les lignes qui contiennent caractères de notre gamme (même s'ils contiennent également des caractères hors de cette gamme) :

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

Résultat :

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