SQL IN句作成

値リストをSQLのIN句へ整形し、クオート・エスケープ・NULL扱い・重複除去をまとめて調整できるツールです。大量件数時の分割出力にも対応し、貼り付け前の事故を減らします。

何ができるか

改行/CSV/TSVの値一覧から、`IN (...)` もしくは `WHERE col IN (...)` を生成できます。
文字列エスケープ、数値判定、NULLの扱い、重複除外を一画面で確認できます。

入力件数: 0 | 出力件数: 0 | NULL検出: 0 | 数値不正除外: 0 | 重複除外: 0

注意(クリックで開く)

不特定入力をSQL文字列に直接貼り付ける運用は危険です。実運用ではプレースホルダとバインド変数を優先してください。

入力内容がURLクエリに含まれるため、共有時は公開してよい条件値のみ扱ってください。

入力データは原則ブラウザ内で処理します。機密情報は入力しないでください。

使い方

  1. 値リストを貼り付け、区切り(自動/改行/CSV/TSV)を選びます。
  2. 文字列または数値モードを選択し、必要ならNULLの扱いを指定します。
  3. 重複除去や空行除外を調整し、必要なら1000件超の分割出力をONにします。
  4. 生成SQLを確認し、「SQLをコピー」で貼り付けます。

判断基準

最初に「数値として扱う列か」「文字列として扱う列か」を決めてから投入すると安全です。迷う場合は文字列モードで生成し、DB側型に合わせて調整してください。

よくある失敗

  • 数値モードで `00123` を投入し、先頭ゼロが欠落した条件になる。
  • NULLをIN句に混ぜてしまい、意図した絞り込み結果にならない。
  • 大量IDを1句に詰め込み、DB側のリスト上限でエラーになる。

境界条件

  • この出力は文字列組み立て補助であり、SQL実行時の権限や性能最適化までは扱いません。
  • 一般的には本番運用でプレースホルダ+バインド変数が推奨され、直貼りSQLは限定用途に留めます。
  • DB製品ごとのIN句件数制限は異なるため、実運用では公式仕様を確認してください。

具体例

  • 改行入力 `A-001 / A-002` → `WHERE id IN ('A-001', 'A-002')`
  • `O'Reilly` を含む入力 → `O''Reilly` に自動エスケープ

失敗しやすい入力例

  • 数値モードで文字列値を混在させる

    クォート不足でSQL構文エラーになる可能性があります。

    例: 入力例: 100, A-001(数値モード) / 出力: 不正IN句

  • NULL文字列とSQL NULLを混同する

    "NULL" と NULL は意味が異なります。

    例: 判断ポイント: NULL扱い設定を明示して出力確認

境界値・例外ケース

  • 大量件数のIN句

    DB制限で1文に入れられる要素数上限を超える場合があります。

    例: 判断ポイント: 分割出力設定を有効にして生成

  • シングルクォートを含む値

    値中の `'` はSQLエスケープが必要です。

    例: 入力例: O'Reilly / 出力: 'O''Reilly'

よくあるミス

  • 重複除去を無効のまま運用する

    不要な値重複でクエリ効率が落ちることがあります。

    例: 運用例: 大量リスト時は重複除去を有効化

  • 生成SQLをWHERE句へそのまま貼り忘れる

    IN句単体と完全SQLの選択を誤ると実行失敗します。

    例: 判断ポイント: 出力モード(INのみ/WHERE含む)を確認

FAQ

  • シングルクォートはどう扱われますか?

    文字列モードでは `''` へエスケープして出力します。

  • NULLはIN句に含めるべきですか?

    通常は `IS NULL` と分けるほうが明確です。本ツールでは除外/警告/含めるを切り替えできます。

  • 1000件を超える値はどうすべきですか?

    DBによって制約があるため分割実行を推奨します。分割出力ONで `OR` 連結の形にできます。

  • 数値モードと文字列モードの見分け方は?

    列型が数値でも、先頭ゼロや英字混在の可能性があるIDは文字列モードを推奨します。純粋な数値キーだけ数値モードにしてください。

基本FAQ

  • 入力データは外部へ送信されますか?

    原則として送信されません。入力内容はブラウザ内で処理します。例外がある場合は各ツールページ内に明記しています。

  • 入力内容は自動保存されますか?

    原則として自動保存しません。コピーやダウンロードで保存する場合は、ご利用端末内に保存されます。

現在の入力内容とあわせて確認しやすいツールです。