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

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

DDD
发布: 2025-01-19 06:52:12
原创
1004 人浏览过

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

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

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

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

INSERT INTO Users (weight, desiredWeight) VALUES (160, 145) WHERE id = 1;
登录后复制

此查询的目的是添加新行仅当包含id = 1的行存在时,有效地更新该行。 这是不正确的INSERT用法。

正确做法:

解决方案取决于您想要的结果:

  • 添加新行: 要插入新行(包括 id),请使用:
INSERT INTO Users (id, weight, desiredWeight) VALUES (1, 160, 145);
登录后复制
  • 修改现有行: 要更新现有行,请使用 UPDATE:
UPDATE Users SET weight = 160, desiredWeight = 145 WHERE id = 1;
登录后复制
  • 插入或更新(有条件): 要根据唯一键插入新行或更新现有行,请使用 INSERT ... ON DUPLICATE KEY UPDATE:
INSERT INTO Users (id, weight, desiredWeight) VALUES (1, 160, 145) ON DUPLICATE KEY UPDATE weight = 160, desiredWeight = 145;
登录后复制
  • 自动递增 ID: 如果 id 是自动递增列,则在 INSERT 语句中省略它:
INSERT INTO Users (weight, desiredWeight) VALUES (160, 145);
登录后复制

通过使用正确的 SQL 命令,您将避免错误并在 MySQL 数据库中实现预期的数据操作。

以上是为什么使用 WHERE 子句时 MySQL INSERT 查询失败?的详细内容。更多信息请关注PHP中文网其他相关文章!

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