sql >> データベース >  >> RDS >> SQLite

SQLiteの英数字を含む行を返す

    SQLiteで英数字を含む行を返す例を次に示します。

    英数字は、英字と英数字です。

    次のデータを含むテーブルがあるとします。

    SELECT c1 FROM t1;

    結果:

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

    REGEXPを使用できます 英数字のみを含む行のみを返す正規表現を使用した演算子:

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

    結果:

    Music
    007  

    この場合、éのようなUnicode文字は含めませんでした 、É 、またはø 私の範囲内であるため、これらの文字を含む行はすべて出力から除外されます。

    これを行うときは、関連するキャラクターがカバーされていることを確認する必要があります。

    これらの文字を含めるように範囲を拡張する例を次に示します。

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

    結果:

    Music
    Café 
    007  
    é    
    É    
    ø    

    スペース文字は英数字ではありません。したがって、スペースを含む行を返すために、正規表現にスペースを追加できます。

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

    結果:

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

    次のコードを使用して、含むすべての行を含めることができます。 私たちの範囲の文字(この範囲外の文字も含まれている場合でも):

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

    結果:

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

    1. トラブルシューティング:リダイレクトが多すぎます

    2. Railsでの複数のデータベース接続

    3. 動的フィールド名でトリガー

    4. スキーマとデータベースの違いは何ですか?