ホームページ >データベース >mysql チュートリアル >MySQL の NO_BACKSLASH_ESCAPES モードでリテラルのパーセント文字とアンダースコア文字をエスケープする方法は?

MySQL の NO_BACKSLASH_ESCAPES モードでリテラルのパーセント文字とアンダースコア文字をエスケープする方法は?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-26 19:56:12907ブラウズ

How to Escape Literal Percent and Underscore Characters in MySQL's NO_BACKSLASH_ESCAPES Mode?

MySQL の NO_BACKSLASH_ESCAPES モードでのリテラルのパーセント文字とアンダースコア文字のエスケープ

MySQL では、NO_BACKSLASH_ESCAPES モードにより、エスケープとして従来のバックスラッシュ文字 () が無効になります。 LIKE クエリ内のメカニズム。このモードでは、リテラルのパーセント (%) 文字とアンダースコア (_) 文字をエスケープしようとするときに問題が発生します。

標準エスケープ方法

パーセント文字をエスケープする標準方法LIKE クエリの前にバックスラッシュ () を付けます。ただし、NO_BACKSLASH_ESCAPES モードでは、この方法は機能しません。

代替エスケープ文字

バックスラッシュを使用せずにリテラル文字をエスケープするには、次を使用して代替エスケープ文字を指定できます。 ESCAPE キーワード。例:

SELECT * FROM mytable
WHERE mycol LIKE '5\% off' ESCAPE '\';

バージョンに依存しないエスケープ

NO_BACKSLASH_ESCAPES モード設定に関係なく機能するクエリを作成するには、別のエスケープ文字を使用できます。たとえば、パイプ文字 (|) をエスケープ文字として定義できます:

SELECT * FROM mytable
WHERE mycol LIKE '5|% off' ESCAPE '|';

代替のエスケープ文字を指定すると、NO_BACKSLASH_ESCAPES モードでもリテラルの % および _ 文字を効果的にエスケープできます。これにより、さまざまな MySQL 構成で確実に動作する LIKE クエリを作成できます。

以上がMySQL の NO_BACKSLASH_ESCAPES モードでリテラルのパーセント文字とアンダースコア文字をエスケープする方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。