ホームページ >データベース >mysql チュートリアル >MySQL の NO_BACKSLASH_ESCAPES モードでリテラルのパーセント文字とアンダースコア文字をエスケープする方法は?
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 サイトの他の関連記事を参照してください。