mysql - 如何使用第一行的值更新所有行
问题描述
我想更新表中的一个字段,以便所有行都具有与第一行相同的值。我认为这很简单:
UPDATE my_table SET my_field = (SELECT my_field FROM my_table ORDER BY id LIMIT 1);
但是 MySql 不喜欢这样。
ERROR 1093 (HY000): You can't specify target table 'my_table' for update in FROM clause
解决方案
您可以将子查询嵌套在另一个内部:
UPDATE my_table
SET my_field = (SELECT my_field FROM (SELECT my_field FROM my_table ORDER BY id LIMIT 1) t);
推荐阅读
- c# - C# ASP.NET Core MVC:异常处理 - 我需要更多数据,如 URL 参数和会话
- vba - VBA - 带有错误的索引 SumProduct
- gtk - Glade/Gtkmm : 多窗口项目
- java - 二叉搜索树添加算法的实现
- go - 指向切片的指针的 Golang 类型断言
- python - Python itemgetter根据值字符串的中间对dict进行排序
- python - 不明白为什么有一个额外的窗口
- php - RelationNotFoundException 调用未定义的关系 Laravel
- javascript - 如何将数据从 vue 中的表格组件传递到另一个表格组件,使用编辑按钮传递表格中的每一行
- database - 如何在 Dropwizard 项目中创建和开始使用嵌入式 Apache Derby 数据库(Angular 7 前端)