您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

不带where子句的更新

不带where子句的更新

要更新表格中的“第二”行,该行具有第二个最小的id值…

UPDATE test t
  JOIN ( SELECT r.id
           FROM test r
          ORDER BY r.id 
          LIMIT 1,1
       ) s
    ON s.id = t.id
   SET t.no = 2

作为澄清上述查询结果的后续措施…

id表中不唯一的情况下,查询可能会更新 多个 行。s在按ID值对行进行排序之后,内联视图查询()从“第二”行获取ID值。然后将更新具有相同id值的 所有 行。

这是一个问题,只有id不是 唯一的; 如果id是唯一的,则该语句将(最多)更新一行。

例如,如果表的内容是:

+-----+-----+
| id  | no  |
+-----+-----+
|   1 |   1 |
|  11 |   3 | <-- "second" row, ordered by id ascending 
|  11 |   4 | <-- id from third row matches id from second row
|  21 |   1 |
+-----+-----+

上面查询的结果将是更新值为的 行。id``11

+-----+-----+
| id  | no  |
+-----+-----+
|   1 |   1 |
|  11 |   2 |  <-- updated
|  11 |   2 |  <-- updated
|  21 |   1 |
+-----+-----+
其他 2022/1/1 18:48:18 有480人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶