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

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

    MySQLでは、 RLIKE 演算子は、文字列が正規表現に一致するかどうかを判断するために使用されます。これはREGEXP_LIKE()の同義語です 。

    文字列が指定された正規表現と一致する場合、結果は 1になります。 、それ以外の場合は 0

    構文

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

    expr RLIKE pat

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

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

    SELECT 'Tweet' REGEXP '^Tw.*t$';

    結果:

    +--------------------------+
    | 'Tweet' REGEXP '^Tw.*t$' |
    +--------------------------+
    |                        1 |
    +--------------------------+
    

    この場合、戻り値は 1です。 これは、入力文字列が正規表現と一致したことを意味します。特に、入力文字列は Twで始まるように指定しました tで終わります (これは、パターンを ^ Twで開始したためです。 t $で終了しました )。 partは任意の文字を指定し、 * その(任意の)文字の任意の数に対してゼロになる可能性があることを指定します。つまり、。* 開始と終了の間に文字がない、1文字、または多くの文字が存在できないことを意味します。

    *を削除するとどうなりますか :

    SELECT 'Tweet' REGEXP '^Tw.t$';

    結果:

    +-------------------------+
    | 'Tweet' REGEXP '^Tw.t$' |
    +-------------------------+
    |                       0 |
    +-------------------------+
    

    返される結果は0です。 これは一致しないことを意味します。これは、が原因です。 任意の文字のインスタンスを1つだけ指定します。入力文字列には2つのインスタンスが含まれています。

    ここにいくつかの順列があります:

    SELECT 
      'Twet' REGEXP '^Tw.t$' AS 'Twet',
      'Twit' REGEXP '^Tw.t$' AS 'Twit',
      'Twt' REGEXP '^Tw.t$' AS 'Twt',
      'Tw.t' REGEXP '^Tw.t$' AS 'Tw.t';

    結果:

    +------+------+-----+------+
    | Twet | Twit | Twt | Tw.t |
    +------+------+-----+------+
    |    1 |    1 |   0 |    1 |
    +------+------+-----+------+
    

    その他の例

    その他の例については、MySQLREGEXPの例を参照してください。 RLIKEのように 、 REGEXP 演算子はREGEXP_LIKE()の同義語でもあります 。


    1. Oracleの日付にAD/BCインジケーターを追加する方法

    2. PostgreSQL:シリアルvsアイデンティティ

    3. MySQLリモート接続が不明な認証方法で失敗する

    4. MySQLパフォーマンスチューニングに関する10の役立つヒント