MySQL でのスラッシュの検索: WHERE (EQ) と LIKE のエスケープに関する考慮事項
MySQL で WHERE () を使用してスラッシュ () を検索する場合=) と LIKE では、エスケープ要件の微妙な違いを理解することが重要です。
LIKE 演算子はデフォルトでエスケープ文字として扱われるため、ユーザーは引用符やスラッシュなどの特殊文字と一致することができます。ただし、WHERE (=) 演算子を使用する場合、エスケープは必要ありません。
なぜ違いますか?
LIKE では、その後に続く特殊文字のプレースホルダーとして機能します。 。リテラルのバックスラッシュと一致させるには、追加の . を使用してエスケープする必要があります。これは、MySQL がクエリを解析するときに最初の文字列を削除し、パターンと一致するときに再度削除するためです。したがって、クエリ内の「test」は、「test」ではなく「test」と一致します。これを考慮して、検索文字列は「test」にする必要があります。
WHERE (=) のエスケープ
WHERE (=) ではエスケープは必要ありませんが、 single は、解析中に MySQL によって削除されます。したがって、検索値にリテラルとそれに続く文字が含まれる場合は、別の . でエスケープすることをお勧めします。たとえば、「test」は「test」と一致するように「test」としてエスケープする必要があります。
代替エスケープ文字
エスケープ文字としてデフォルトを使用することが問題がある場合, MySQL では、ESCAPE キーワードを使用して代替エスケープ文字を指定できます。例:
<code class="sql">SELECT * FROM `titles` WHERE title LIKE 'test\' ESCAPE '|'</code>
この場合、「|」はエスケープ文字として使用され、クエリは「test」ではなく「test」と一致します。
結論
MySQL のスラッシュのエスケープ要件を理解することが重要です。正確な検索結果を保証するため。上記のガイドラインに従うことで、ユーザーは WHERE (=) 演算子と LIKE 演算子の両方を使用してデータ テーブルを効果的にクエリし、スラッシュを含む一致を検索できます。
以上がMySQL で WHERE (=) および LIKE 演算子のスラッシュをエスケープするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。