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

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

    MySQLでは、NOT REGEXP REGEXPの否定です オペレーター。

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

    構文

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

    expr NOT REGEXP pat

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

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

    NOT (expr REGEXP pat)

    例1-基本的な使用法

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

    SELECT 'Bread' NOT REGEXP '^Br' AS 'Result';

    結果:

    +--------+
    | Result |
    +--------+
    |      0 |
    +--------+
    

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

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

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

    結果:

    +--------+
    | Result |
    +--------+
    |      0 |
    +--------+
    

    例2–REGEXPとの比較

    明確にするために、ここではREGEXPの結果を比較します。 およびNOT REGEXP

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

    結果:

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

    例3–肯定的な結果

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

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

    結果:

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

    1. 文字列の分割:フォローアップ

    2. SQLServer用のインデックスマネージャーを使用したSQLServerインデックス管理

    3. ニージャーク待機統計:CXPACKET

    4. Oracleテーブルまたはビューの名前を変更します