在 MySQL INSERT 语句中使用 WHERE 子句会导致错误。 这是因为 WHERE 子句是专门为 UPDATE 和 DELETE 操作而不是 INSERT 设计的。
所提供的查询可能旨在添加新用户或修改现有用户。让我们澄清这两种情况:
要插入 ID 为 1 的新用户,正确的 MySQL 语法是:
<code class="language-sql">INSERT INTO Users (id, weight, desiredWeight) VALUES (1, 160, 145);</code>
这会直接为 id
、weight
和 desiredWeight
赋值,创建一条新的用户记录。
如果目标是更新现有用户,请使用 UPDATE 语句:
<code class="language-sql">UPDATE Users SET weight = 160, desiredWeight = 145 WHERE id = 1;</code>
这会更改具有 weight
的用户的 desiredWeight
和 id = 1
,而不影响其他条目。
要根据记录存在来处理插入和更新,请考虑以下替代方案:
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>
如果键不存在,则插入一个新行;否则,它会更新现有行。
INSERT ... SET
:(虽然功能上与上面的 VALUES 方法类似,但为了清晰起见,通常不太喜欢这种语法)记住:如果id
是自增列,则可以在INSERT语句中省略它; MySQL会自动生成一个唯一的ID。
以上是为什么 MySQL 中使用 WHERE 子句的 INSERT 查询会失败?的详细内容。更多信息请关注PHP中文网其他相关文章!