MySQL は、パターン内の任意の文字と一致するワイルドカード文字として % 記号を使用する一般的なリレーショナル データベース管理システムです。ただし、% 記号自体も MySQL の特殊文字の 1 つであるため、使用する場合はエスケープする必要があります。この記事では、MySQL で % 記号を使用するときに注意する必要があるエスケープ文字を紹介します。
%記号とは何ですか?
MySQL では、% 記号はパターン内の任意の文字と一致するために使用できるワイルドカード文字です。たとえば、文字 A で始まるすべての単語を検索する場合は、次のステートメントを使用できます。
SELECT * FROM words WHERE word LIKE 'A%';
このステートメントは、パターン マッチングに LIKE 演算子を使用し、% 記号を使用して、任意の単語が含まれる位置を示します。文字を一致させることができます。したがって、このクエリは文字 A で始まるすべての単語を返します。
この例では、% 記号がパターン マッチングのワイルドカード文字として使用されています。ただし、% 記号が特殊文字として解釈される可能性があるため、そのような場合にはエスケープする必要がある状況もあります。
% 記号のエスケープ文字は何ですか?
MySQL では、% 記号は特殊文字であるため、場合によってはエスケープする必要があります。 MySQL では、バックスラッシュ文字 () を使用して特殊文字をエスケープできます。
% 文字で始まるパターン内の単語を検索するには、次のステートメントを使用できます。
SELECT * FROM words WHERE word LIKE '%a%';
この例では、% 記号をエスケープするために文字が使用されています。これは、% 文字がワイルドカード文字ではなく、通常の文字として解釈されることを意味します。したがって、このクエリは、%a で始まる単語だけでなく、文字 a を含むすべての単語を返します。
場合によっては、パターン内で複数の % 文字を使用する必要がある場合があります。たとえば、一般的な語句「%mysql%」を含む単語を検索するには、次のステートメントを使用します。
SELECT * FROM words WHERE word LIKE '%%mysql%%';
この例では、% 文字は % 文字列にエスケープされるため、次のように扱われます。ワイルドカードの代わりに通常の文字を使用します。したがって、このクエリは「%mysql%」という語句を含むすべての単語を返します。
注意すべき点は、文字列内でバックスラッシュ文字を使用する場合は、忘れずにエスケープすることです。たとえば、バックスラッシュ文字で始まるパターン内の単語を検索する場合は、次のステートメントを使用します。
SELECT * FROM words WHERE word LIKE '\%';
この例では、最初の文字は 2 番目の文字をエスケープするために使用されます。このように、2 番目の文字は MySQL エスケープ文字としてではなく、通常の文字として解釈されます。したがって、このクエリは、character で始まるすべての単語を返します。
結論
% 記号は MySQL で非常に便利なワイルドカード文字であり、パターン マッチングでよく使用されます。ただし、% 文字自体も MySQL の特殊文字の 1 つであるため、使用する場合はエスケープする必要があります。 MySQL では、バックスラッシュ文字を使用して % 文字をエスケープし、ワイルドカード文字ではなく通常の文字として扱うことができます。
以上がmysql % エスケープ文字の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。