sql >> データベース >  >> RDS >> Mysql

純粋なSQLでバックスラッシュ(\)を見つけるためにダブルエスケープ(4 \を使用)する必要があるのはなぜですか?

    最初に文字列構文をエスケープし、次にLIKEをエスケープします 構文。

    LIKEで 文字% および_ 特別な意味があるので、文字通りの%を検索したい場合 、\%を使用する必要があります 、およびリテラル\%を検索する場合 \\%のように円記号をエスケープする必要があります 。

    文字列構文" 明らかに特別な意味があるため、文字列に引用符を含める場合は、\"としてエスケープする必要があります。 、およびリテラル\"を含める 文字列では、\\"のように円記号をエスケープする必要があります 。

    したがって、どちらの構文でも、\をエスケープする必要があります。 。

    \を使用したくない場合 LIKEパターンをエスケープするには、ESCAPEキーワードを使用できます。例:

    ...  where test LIKE "a\\b%" ESCAPE '|';
    

    このように、|%を書く必要があります 、|_ または|| これらの特別な文字をエスケープします。



    1. SQLでの在庫平均コストの計算

    2. SQLiteOpenHelper:物理デバイスで呼び出されないonCreate()メソッド

    3. JavaからMySQLに接続できません:MySQLドライバー接続ロジック内のNullPointerException

    4. MySQLで月ごとにグループ化する方法