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

MariaDBで正規表現が機能しない方法

    MariaDBでは、NOT REGEXP 演算子はREGEXPの否定です オペレーター。

    文字列が指定された正規表現と一致する場合、結果は0になります。 、それ以外の場合は1 。これは、REGEXPの結果とは逆の結果です。 返されます(接頭辞がNOTでない場合 。

    構文

    構文は次のようになります:

    expr NOT REGEXP pat

    expr 入力文字列であり、pat 文字列をテストする正規表現です。

    これは、次のことを行うのと同じです:

    NOT (expr REGEXP pat)

    これをSELECTで使用する方法の例を次に示します。 ステートメント:

    SELECT 'Bread' NOT REGEXP '^Br';

    結果:

    +--------------------------+
    | 'Bread' NOT REGEXP '^Br' |
    +--------------------------+
    |                        0 |
    +--------------------------+

    ここで、入力文字列がBrで始まる場合、パターンは一致します。 。ありますが、NOT REGEXPを使用しているためです 、否定的な結果が得られます(0

    上記のステートメントは、これを行うのと同じです:

    SELECT NOT ('Bread' REGEXP '^Br');

    結果:

    +----------------------------+
    | NOT ('Bread' REGEXP '^Br') |
    +----------------------------+
    |                          0 |
    +----------------------------+

    REGEXPとの比較

    この例では、REGEXPの結果を比較します。 およびNOT REGEXP

    SELECT 
      'Bread' REGEXP '^Br' AS "REGEXP",
      'Bread' NOT REGEXP '^Br' AS "NOT REGEXP";

    結果:

    +--------+------------+
    | REGEXP | NOT REGEXP |
    +--------+------------+
    |      1 |          0 |
    +--------+------------+
    

    肯定的な結果

    前の例では、0になりました。 NOT REGEXPの場合 、文字列 did 実際にパターンに一致します。 1を取得する例を次に示します。 、これは、文字列がないことを示します。 一致:

    SELECT 
      'Sofa' REGEXP '^Br' AS "REGEXP",
      'Sofa' NOT REGEXP '^Br' AS "NOT REGEXP";

    結果:

    +--------+------------+
    | REGEXP | NOT REGEXP |
    +--------+------------+
    |      0 |          1 |
    +--------+------------+

    1. ダイレクトNFSでのORA-4031エラー

    2. CentOSにMySQL8をインストールする手順

    3. Windows 10にMySQLをインストールするにはどうすればいいですか? –MySQLをインストールするためのワンストップソリューション

    4. SQL Server 2016:常に暗号化されることによるパフォーマンスへの影響