LoginSignup
37
33

More than 5 years have passed since last update.

SQLでは「'」をエスケープする際に「''」を使う

Posted at

SQLでは文字列リテラルとしてシングルクォート(「'」)を利用します。そのため文字列中に何も考えずシングルクォートを混ぜていると、RDBMSが文字としてのシングルクォートと文字列リテラルとしてのシングルクォートを区別できず、エラーになります。

- これはエラーになる
update tbl set msg = '彼女は'HELLO'といいました' where id = 100

要するにSQLでは文字としてのシングルクォートをエスケープする必要があるということです。特殊文字のエスケープというとバックスラッシュ(「\」)がよく利用されるイメージがありますが、SQLにおいてはシングルクォートをエスケープする場合はシングルクォートを2回重ねます。たとえば上述の例では次のように書くと正常に動作します。

- これは正常に動く。
update tbl set msg = '彼女は''HELLO''といいました' where id = 100

CSVではフィールド内のダブルクオート(「"」)をエスケープする際「""」に変換します。これにちょっと近いかしら(´・ω・`)

37
33
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
37
33