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

RLIKEがMySQLでどのように機能するか

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

    言い換えれば、いつでもRLIKE 演算子は1を返します 、NOT RLIKE 0を返します 。

    構文

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

    expr NOT RLIKE pat

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

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

    NOT (expr RLIKE pat)

    例1-基本的な使用法

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

    SELECT 'Coffee' NOT RLIKE '^C.*e$' AS 'Result';

    結果:

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

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

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

    SELECT NOT ('Coffee' RLIKE '^C.*e$') AS 'Result';

    結果:

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

    例2–RLIKEとの比較

    ここでは、RLIKEの結果を比較します NOT RLIKE

    SELECT 
      'Coffee' RLIKE '^C.*e$' AS 'RLIKE',
      'Coffee' NOT RLIKE '^C.*e$' AS 'NOT RLIKE';

    結果:

    +-------+-----------+
    | RLIKE | NOT RLIKE |
    +-------+-----------+
    |     1 |         0 |
    +-------+-----------+
    

    例3–肯定的な結果

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

    SELECT 
      'Funny' RLIKE '^C.*e$' AS 'RLIKE',
      'Funny' NOT RLIKE '^C.*e$' AS 'NOT RLIKE';

    結果:

    +-------+-----------+
    | RLIKE | NOT RLIKE |
    +-------+-----------+
    |     0 |         1 |
    +-------+-----------+
    

    代替案

    MySQLには、本質的に同じことを行う多くの関数と演算子が含まれています。これは、NOT RLIKEにも当てはまります。 。

    まず、RLIKE REGEXP_LIKE()の同義語です 関数(REGEXPと同様) )。

    次に、NOT RLIKE NOT REGEXPと同等です 。

    第三に、RLIKEREGEXP 、およびREGEXP_LIKE() NOTを使用するだけで無効にできます 論理演算子。

    したがって、次のすべてが同等です。

    expr NOT RLIKE pat
    expr NOT REGEXP pat
    NOT (expr RLIKE pat)
    NOT (expr REGEXP pat)
    NOT REGEXP_LIKE(expr, pat)
    

    そして、これがデモンストレーションの例です:

    SELECT 
      'Car' NOT RLIKE '^C' AS 'Result 1',
      'Car' NOT REGEXP '^C' AS 'Result 2',
      NOT ('Car' RLIKE '^C') AS 'Result 3',
      NOT ('Car' REGEXP '^C') AS 'Result 4',
      NOT REGEXP_LIKE('Car', '^C') AS 'Result 5';

    結果:

    +----------+----------+----------+----------+----------+
    | Result 1 | Result 2 | Result 3 | Result 4 | Result 5 |
    +----------+----------+----------+----------+----------+
    |        0 |        0 |        0 |        0 |        0 |
    +----------+----------+----------+----------+----------+
    

    1. MySQLPHPの非互換性

    2. PostgreSQLユーザーパスワードを変更するにはどうすればよいですか?

    3. SpringBootアプリケーションがHikariでスタックします-Pool-1-開始しています...

    4. 12cDBA_USERSの変更