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

MySQL、REGEXP-次の正確な文字のみを含む単語を検索します

    ここでの問題は、lの存在をチェックしていることです。 2回。これは...「lが含まれています 。はい、まだlが含まれています 。"2つをチェックしていません。別の方法があります...

    SELECT word FROM us_6 WHERE
    word REGEXP 'v' AND
    word REGEXP 'l.*l' AND
    word REGEXP 'e' AND
    word REGEXP 'o' AND
    word REGEXP 'y'
    

    これは、vを含むすべての単語と一致する必要があります 、2つのleo 、およびy

    したがって、同じ文字が1つおきに出現する場合は、クエリに別の。*文字を追加するだけです。たとえば、lullaby 次のクエリが必要です:

        SELECT word FROM us_7 WHERE
        word REGEXP 'l.*l.*l' AND
        word REGEXP 'u' AND
        word REGEXP 'a' AND
        word REGEXP 'b' AND
        word REGEXP 'y'
    

    3つの*.lを追加する方法をご覧ください lが3回出現するため lullabyという言葉で 。

    LIKEでも同じことができます REGEXPの代わりに 。これが元の質問と同等のクエリです...

    SELECT word FROM us_6 WHERE
    word LIKE '%v%' AND
    word LIKE '%l%l%' AND
    word LIKE '%e%' AND
    word LIKE '%o%' AND
    word LIKE '%y%'
    


    1. MySQLクエリでテキストを数値に変換する

    2. データベースシャーディングのためのMySQLプロキシの代替

    3. SQLサーバーからパスワードを復号化する方法は?

    4. PHPとMYSQLを使用してお気に入りのジョブリストを作成する