当前位置: 首页 > 面试题库 >

MySQL插入位置查询

养聪
2023-03-14
问题内容

此查询有什么问题:

INSERT INTO Users( weight, desiredWeight ) VALUES ( 160, 145 ) WHERE id = 1;

它不带WHERE子句就可以工作。我似乎忘记了我的SQL。


问题答案:

MySQL
INSERT语法不支持WHERE子句,因此您的查询将失败。假设您的id列是唯一键或主键:

如果您要插入ID为1的新行,则应使用:

INSERT INTO Users(id, weight, desiredWeight) VALUES(1, 160, 145);

如果您尝试更改ID为1的现有行的weight / desiredWeight值,则应使用:

UPDATE Users SET weight = 160, desiredWeight = 145 WHERE id = 1;

如果需要,还可以使用INSERT .. ON DUPLICATE KEY语法,如下所示:

INSERT INTO Users (id, weight, desiredWeight) VALUES(1, 160, 145) ON DUPLICATE KEY UPDATE weight=160, desiredWeight=145

甚至像这样:

INSERT INTO Users SET id=1, weight=160, desiredWeight=145 ON DUPLICATE KEY UPDATE weight=160, desiredWeight=145

同样重要的是要注意,如果您的id列是一个自动增量列,那么您最好将其全部从INSERT中省略掉,并让mysql像往常一样对其进行增量。



 类似资料:
  • Given a sorted array and a target value, return the index if the target is found. If not, return the index where it would be if it were inserted in order. You may assume no duplicates in the array. He

  • 问题内容: 我是mySQL:s联合函数的新手,至少在使用它们进行插入时。根据网上发现的示例,我得到了以下工作: 好的,对此并不奇怪。但是,当我想向数据库中插入与Select的完成逻辑无关的第三个值时会发生什么? 喜欢 : 那怎么办? 问题答案: 您也可以“选择”文字值: 因此,您也可以在和s中使用它。

  • 我试图使用下面的MySQL语句

  • 问题内容: 这可能吗?我想以特定的顺序获取一堆结果,然后通过其ID找出行的位置,例如: 我想按字母顺序获得1的位置,它将返回2 问题答案: SELECT id, name, rank FROM ( SELECT t.id, t.name, @rownum := @rownum + 1 AS rank FROM TABLE t, (SELECT @rownum := 0) r ORDER BY na

  • 问题内容: 我需要更改输入的插入符号位置,在该位置添加给定的数字(示例)。 是否可以执行类似此示例的操作? 我需要例如: 输入:1234。 因此插入符号的位置将为2。 新数字:9 决赛:12934 提前致谢。 问题答案: 我认为这类情况在指令中看起来更好。例如: 用法: 我从这个答案中使用了跨浏览器光标定位的功能。 演示:http : //plnkr.co/edit/5RSgzvyd8YOTaXP

  • 我想写一个函数,将一个节点添加到一个树中,该树以根、节点的值、我想添加新节点的节点的值和一个数字作为参数,根据该数字我将节点添加为左或右子节点(偶数=右子节点,奇数=左子节点)。我不明白我错在哪里,这与BST的概念相同,只是其他条件。如果有任何帮助,我将不胜感激。 例如: Tnode*insert(Tnode*root,int data,int father,int leftOrRight);插入