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

SQLiteで英数字以外の文字のみを含む行を返す

    SQLiteで英数字以外の文字のみを含む行を返す例を次に示します。

    英数字以外の文字には、[email protected]#&()–[{}]:;',?/*などの句読文字が含まれます。 および`~$^+=<>“のような記号 、およびスペースやタブ文字などの空白文字。

    サンプルデータ

    例では、次のデータを使用します。

    SELECT c1 FROM t1;

    結果:

    +----------------------+
    | 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                |
    +----------------------+

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

    SELECT c1 FROM t1
    WHERE c1 NOT REGEXP '[A-Za-z0-9]';

    結果:

    +----------------------+
    | c1                   |
    +----------------------+
    | ()                   |
    | [email protected]#&()–[{}]:;',?/*   |
    | `~$^+=<>“            |
    |                      |
    | é                    |
    | É                    |
    | ø                    |
    +----------------------+

    この場合、除外範囲はéのような英数字をカバーしていませんでした 、É 、およびø 。次の例では、範囲を拡張して、これらの文字を結果から除外します。

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

    結果:

    ()                
    [email protected]#&()–[{}]:;',?/*
    `~$^+=<>“         
                      

    このテーブルには、空の文字列を含む行も含まれています。これは英数字ではないため、上記の結果で返されます。 NULLIF()を使用することもできます 空の文字列を出力から除外する関数:

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

    結果:

    ()                
    [email protected]#&()–[{}]:;',?/*
    `~$^+=<>“         
                      

    1. すべてのホストからのMySQLルートアクセス

    2. VisualStudio2012のmySQLデータソース

    3. すべてのテキストベースのフィールドに汎用varchar(255)を使用することに不利な点はありますか?

    4. MySQLクローンプラグインとXtrabackupの比較