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>
通过使用正确的 SQL 命令,您将避免错误并在 MySQL 数据库中实现预期的数据操作。
以上是为什么使用 WHERE 子句时 MySQL INSERT 查询失败?的详细内容。更多信息请关注PHP中文网其他相关文章!