MySQL INSERT ステートメントと WHERE 句のトラブルシューティング
MySQL の INSERT
ステートメントは WHERE
句をサポートしていません。 使用しようとするとエラーが発生します。 WHERE
句は、挿入ではなく、SELECT
、UPDATE
、および 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
ステートメントから省略します:INSERT
<code class="language-sql">INSERT INTO Users (weight, desiredWeight) VALUES (160, 145);</code>
以上がWHERE 句を使用すると MySQL INSERT クエリが失敗するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。