SQL IN句生成ツール|引用符・プレースホルダー対応
改行・カンマ・タブ区切りの値からSQL IN句を生成。文字列の引用符処理、数値検証、重複除去、?・$1プレースホルダー、JSON値一覧に対応します。
Excelからの貼り付けにも対応。Ctrl/⌘ + Enterで生成できます。最大20万文字・5,000件です。
値を入力して「IN句を生成」を押してください。
実行前の確認:リテラル出力は調査用SQLなどを素早く作るための補助です。データベース製品や設定によってバックスラッシュなどの解釈が異なるため、対象列の型と値を確認してください。アプリケーションへ組み込む場合は、文字列連結ではなくプレースホルダーとバインド機能を優先してください。
このツールの使い方・詳細
🛠 使い方
💡 活用シーン・ユースケース
- ExcelからコピーしたIDや商品コードを検索用のIN句へ変換する
- 引用符を含む文字列をSQLリテラルとして確認する
- アプリケーション用のプレースホルダーとバインド値をまとめて用意する
📚 関連知識を深める
改行・カンマ区切りからSQL IN句を生成
ExcelやログからコピーしたID、商品コード、メールアドレスなどを、SQLのWHERE ... IN (...)へ貼り付けられる形式に変換します。改行・カンマ・タブ区切りに対応し、重複除去、文字列と数値の切り替え、1件ずつの改行も選べます。
SQLリテラルとプレースホルダーの違い
| 出力 | 用途 | 例 |
|---|---|---|
| SQLリテラル | 内容を目視確認して実行する一時的なSQL | IN ('Tokyo', 'Osaka') |
| ? プレースホルダー | SQLite、MySQL系ドライバーなどで値を別途バインド | IN (?, ?) |
| $1 プレースホルダー | PostgreSQLなどの番号付きパラメータ | IN ($1, $2) |
プレースホルダーではSQL断片と値のJSON配列を分けてコピーできます。利用する言語・ドライバーによって記号や渡し方が異なるため、実装先の仕様に合わせてください。
O'Reillyのような引用符を含む文字列
SQLの文字列定数はシングルクォートで囲み、値に含まれるシングルクォートは2個へ置き換えます。たとえばO'Reillyは'O''Reilly'になります。ダブルクォートは文字列ではなく識別子を表す処理系があるため、このツールの文字列リテラルには使用しません。規則はPostgreSQLの文字列定数の説明でも確認できます。
アプリケーションでは値をバインドする
引用符の変換はリテラルを読みやすく生成するためのものですが、アプリケーションの入力値をSQL文字列へ連結する方法を推奨するものではありません。たとえばPythonのsqlite3公式ドキュメントでも、文字列操作でクエリを組み立てず、プレースホルダーで値を渡す方法が案内されています。
空のIN句と数値の検証
入力が空の場合、一般的なSQLで扱いにくいIN ()は生成しません。数値モードでは整数、小数、指数表記だけを受け付け、文字や複数の値が混ざった場合は該当位置を示して生成を止めます。
入力した値は送信・保存されますか?
値の分割、重複除去、検証、SQL生成、コピーはページ内のJavaScriptだけで実行します。入力値と生成結果を当サイトのサーバーへ送信・保存せず、ページを閉じると消去されます。