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

MysqlLIKE句とフィールド内の個別の単語

    REGEXPを使用して、検索文字列内の任意の単語に一致させることができます:

    select *
    from tbl
    where
      title REGEXP CONCAT('[[:<:]](', REPLACE('Acme burger', ' ', '|'), ')[[:>:]]')
    

    これはあまり効率的ではないことに注意してください。フィドルこちら をご覧ください 。

    文字列内のすべての単語を照合する必要がある場合は、次のようなクエリを使用できます。

    select *
    from tbl
    where
      title REGEXP CONCAT('[[:<:]]', REPLACE('Acme burger', ' ', '[[:>:]].*[[:<:]]'), '[[:>:]]')
    

    フィドルこちら 。ただし、単語は正しい順序である必要があります(たとえば、「Acme burger」は一致しますが、「burger Acme」は一致しません)。すべての単語を任意の順序で一致させるREGEXPがありますが、Perl正規表現をサポートするUDFをインストールしない限り、MySqlではサポートされていません。



    1. Androidアプリケーションの最大SQLiteデータベースサイズ

    2. 不明からテキストへの変換関数が見つかりませんでした

    3. SQLクエリからテキストファイルを実行することは可能ですか?

    4. 致命的:ユーザーpostgresのパスワード認証に失敗しました(pgAdmin4を使用したpostgresql11)