ホームページ >データベース >mysql チュートリアル >MySQL の NO_BACKSLASH_ESCAPES モードでリテラルのパーセント記号をエスケープするにはどうすればよいですか?

MySQL の NO_BACKSLASH_ESCAPES モードでリテラルのパーセント記号をエスケープするにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-25 14:09:12438ブラウズ

How to Escape Literal Percent Signs in MySQL's NO_BACKSLASH_ESCAPES Mode?

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';

たとえば、次の値を持つテーブルを考えます:

  • 5% オフ
  • 50% オフ

リテラル「% 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 サイトの他の関連記事を参照してください。

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