如何将所有行的值更新为第一行的值

20 浏览
0 Comments

如何将所有行的值更新为第一行的值

我想更新表中的一个字段,使得所有行的值都与第一行相同。我以为这很简单:\n

UPDATE my_table SET my_field = (SELECT my_field FROM my_table ORDER BY id LIMIT 1);

\n但是MySQL不喜欢这样做。\n

ERROR 1093 (HY000):无法在FROM子句中为更新指定目标表'my_table'

0
0 Comments

这是一个问题,问题是如何更新所有行的值为第一行的值。问题可能是在处理数据库表时,需要将所有行的特定字段的值替换为第一行的值。以下是解决这个问题的方法之一:

可以将子查询嵌套在另一个查询中:

UPDATE my_table

SET my_field = (SELECT my_field FROM (SELECT my_field FROM my_table ORDER BY id LIMIT 1) t);

这段代码将更新表中的所有行,将特定字段(my_field)的值设置为第一行的值。通过嵌套子查询,我们可以获取第一行的值,并将其应用于所有行。

这个解决方法非常有效,可以在处理类似问题时使用。

0