NO_BACKSLASH_ESCAPES MySQL モードでのリテラル パーセント記号のエスケープ
MySQL の NO_BACKSLASH_ESCAPES モードでは、通常の方法 (%) を使用して % 文字をエスケープすることはできません。認識された。これは、リテラルのパーセント記号を含む LIKE クエリを実行するときに問題を引き起こす可能性があります。
このモードでリテラル % または _ をエスケープするには、LIKE キーワードの後にエスケープ文字を指定する必要があります。これを行うための構文は次のとおりです:
SELECT * FROM table_name WHERE column_name LIKE 'pattern_with_escaped_character' escape 'escape_character';
たとえば、次の値を持つテーブルを考えます:
リテラル「% off」を含むすべての行を取得するには、次のクエリを実行できます。使用:
SELECT * FROM mytable WHERE mycol LIKE '5\% off' escape '\';
エスケープ文字はバックスラッシュ () であり、その後にリテラルのパーセント記号が続くことに注意してください。
あるいは、NO_BACKSLASH_ESCAPES モードに関係なく機能するクエリを作成するには、別のエスケープ文字を使用できます。例:
SELECT * FROM mytable WHERE mycol LIKE '5|% off' escape '|';
この場合、パイプ文字 (|) がエスケープ文字として使用されます。エスケープ文字を指定すると、デフォルトのバックスラッシュベースのエスケープメカニズムを回避し、望ましい結果を得ることができます。
以上がMySQL の NO_BACKSLASH_ESCAPES モードでリテラルのパーセント記号をエスケープするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。