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

为什么使用 WHERE 子句时 MySQL INSERT 查询失败?

DDD
DDD原创
2025-01-19 06:52:12984浏览

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

MySQL INSERT 语句和 WHERE 子句故障排除

MySQL 的 INSERT 语句不支持 WHERE 子句。 尝试使用其中一个将会导致错误。 WHERE 子句用于过滤 SELECTUPDATEDELETE 语句中的数据,而不是用于插入。

让我们看一个常见的场景:

<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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn