ホームページ > データベース > mysql チュートリアル > WHERE 句を使用すると MySQL INSERT クエリが失敗するのはなぜですか?

WHERE 句を使用すると MySQL INSERT クエリが失敗するのはなぜですか?

DDD
リリース: 2025-01-19 06:52:12
オリジナル
983 人が閲覧しました

Why Does My MySQL INSERT Query Fail When Using a WHERE Clause?

MySQL INSERT ステートメントと WHERE 句のトラブルシューティング

MySQL の INSERT ステートメントは WHERE 句をサポートしていません。 使用しようとするとエラーが発生します。 WHERE 句は、挿入ではなく、SELECTUPDATE、および DELETE ステートメント内のデータをフィルタリングするために使用されます。

一般的なシナリオを調べてみましょう:

<code class="language-sql">INSERT INTO Users (weight, desiredWeight) VALUES (160, 145) WHERE id = 1;</code>
ログイン後にコピー
このクエリは、

を持つ行が存在する場合にのみ新しい行を追加し、その行を効果的に更新することを目的としています。 これは間違った id = 1 使用法です。INSERT

正しいアプローチ:

解決策は、あなたが望む結果によって異なります:

  • 新しい行の追加: を含む新しい行を挿入するには、次を使用します:id
<code class="language-sql">INSERT INTO Users (id, weight, desiredWeight) VALUES (1, 160, 145);</code>
ログイン後にコピー
  • 既存の行の変更: 既存の行を更新するには、:UPDATE を使用します。
<code class="language-sql">UPDATE Users SET weight = 160, desiredWeight = 145 WHERE id = 1;</code>
ログイン後にコピー
  • 挿入または更新 (条件付き): 新しい行を挿入するか、一意のキーに基づいて既存の行を更新するには、:INSERT ... ON DUPLICATE KEY UPDATE を使用します。
<code class="language-sql">INSERT INTO Users (id, weight, desiredWeight) VALUES (1, 160, 145) ON DUPLICATE KEY UPDATE weight = 160, desiredWeight = 145;</code>
ログイン後にコピー
  • 自動インクリメント ID: が自動インクリメント列の場合、id ステートメントから省略します:INSERT
<code class="language-sql">INSERT INTO Users (weight, desiredWeight) VALUES (160, 145);</code>
ログイン後にコピー
正しい SQL コマンドを使用することで、エラーを回避し、MySQL データベース内で意図したデータ操作を実現できます。

以上がWHERE 句を使用すると MySQL INSERT クエリが失敗するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート