首页 > 数据库 > mysql教程 > 为什么 MySQL 中使用 WHERE 子句的 INSERT 查询会失败?

为什么 MySQL 中使用 WHERE 子句的 INSERT 查询会失败?

DDD
发布: 2025-01-19 06:40:10
原创
966 人浏览过

Why Do INSERT Queries Fail with a WHERE Clause in MySQL?

MySQL INSERT 语句和 WHERE 子句:常见陷阱

在 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>
登录后复制

这会直接为 idweightdesiredWeight 赋值,创建一条新的用户记录。

修改现有用户

如果目标是更新现有用户,请使用 UPDATE 语句:

<code class="language-sql">UPDATE Users SET weight = 160, desiredWeight = 145 WHERE id = 1;</code>
登录后复制

这会更改具有 weight 的用户的 desiredWeightid = 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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板