100% ローカル — データがブラウザの外に出ることはありません

SQLのエスケープ解除|クエリの中にある値をそのまま読めます

ANSI SQL の引用を元に戻します。外側のシングルクォートがあれば外し、二重になったクォートを一つに戻すので、実際に入っている値をそのまま目で読み取れます。

高速 プライベート Cookieゼロ

SQL Escaped 入力

Text 出力

このツールの動作

標準 SQL が文字列リテラルに対して持つ唯一のエスケープ規則を逆にします。文字列内のシングルクォートは2つ重ねて書く、という規則です。リテラルを貼り付けると、'' はそれぞれ1つの ' に戻ります。

テキストがシングルクォートで囲まれている場合は、先に外側の対を取り除きます。そのため両方の形式が使えます。'O''Brien' も O''Brien もどちらも O'Brien になるので、クエリからでも、書き出された列の値からでも、手を加えずに貼り付けられます。エスケープ側が出力を引用符で囲むようになったため、両者は正確に逆の操作になります。エスケープが生成したものは、引用符も含めてそのままここで元に戻ります。

こんなときに使います

クエリログ、マイグレーションファイル、ORM のデバッグ出力からリテラルを読むとき。クォートが重なって値が読みにくくなっている場面です。値が1回だけエスケープされたのか2回されたのかを確かめるのにも使えます。余分なクォートが付いて返ってくる名前は、たいていエスケープ処理を1回多く通っています。

このツールがしないこと

バックスラッシュによるエスケープには手を触れません。MySQL は NO_BACKSLASH_ESCAPES が設定されていない限り \' を受け付けますが、これは MySQL の拡張であって標準 SQL ではありません。ここで復号すれば、その規則を持たないデータベース向けのリテラルを黙って書き換えてしまいます。

PostgreSQL のエスケープ文字列(E'...')やドル引用符($$...$$)も同様に対象外です。クエリ全体も同じで、このツールが読むのは1つのリテラルです。1つの文に含まれる二重クォートをすべて畳めば、他のリテラルのクォートを壊してしまいます。

プライバシー

すべての処理はブラウザ内のJavaScriptだけで完結します。データがアップロードされることはないため、機密情報でも安心して利用でき、オフラインでも動作します。

よくある質問

クォートも含めて貼り付ける必要がありますか。
いいえ。`'O''Brien'` でも `O''Brien` でも `O'Brien` になります。外側の対はあれば外し、なければ無視するので、クエリからでも列の値からでもそのまま貼り付けられます。
MySQL のバックスラッシュエスケープはどうなりますか。
そのまま残します。`\'` は MySQL の拡張で、`NO_BACKSLASH_ESCAPES` モードでは無効になり、標準 SQL には存在しません。これを復号すると、その規則を持たないデータベース向けに書かれたリテラルの意味を黙って変えてしまいます。
クエリをまるごと貼り付けられますか。
いいえ。1つのリテラルずつです。入力中の二重クォートがすべて1つに畳まれ、他のリテラルに属するものまで巻き込まれるため、結果は実行可能な SQL ではなくなります。

関連ツール