SQLでシングルクォーテーション等の特殊な文字を含む文字列を扱う方法
超小ネタです。先日自分が困ったので。
SQL文に指定する文字列にシングルクォーテーション(’)のような特殊な文字を含めたい場合、どう書いたらいいのかっていう話です。
通常、SQLで文字列を指示する場合に「’(シングルクオーテーション)」で文字列を囲みます。
なので通常通り、以下の様に書くと文字列が変な指定扱いでエラーになります。
エラーになる通常の文字列指定
SELECT * From Slip where slip_comnt like '%I’m%’;
もしシングルクオーテーションが入った文字列を検索したい場合は以下のどちらかの方法を使います。
- 「’」を2つ連続して書く方法
SELECT * From Slip where slip_comnt like '%I"m%’; - q演算子を利用する方法(Oracle 10g以降)
SELECT * from slip where where slip_comnt like q’%(I’m)%’
「’(シングルクオーテーション)」を2つ連続して記述する方法は他のデータベースでも同じです。OracleでもPostgreSQLでも同じ書き方になります。
q演算子(書き方は「q’(文字列)’」)はOracle特有の機能で、他のデータベースではエラーになります。
本当に小ネタでした。