【问题标题】:how to copy an entry in a row to another row, but in the same column in mysql如何将一行中的条目复制到另一行,但在mysql的同一列中
【发布时间】:2013-06-20 16:59:23
【问题描述】:

这听起来像是一个微不足道的问题,但我到处都看过。 我有一张这样的桌子:

id   var1
1
2    19353

其中 id =1 的 var1 没有条目,我想将 var1 的条目从另一行复制到该位置,以便我拥有

id   var1
1    19353
2    19353

我尝试过,但没有成功:

update table set var1 = (select var1 from table where id=2) where id=1;

有什么建议吗? 谢谢!

【问题讨论】:

  • 为什么没有成功。对我来说看上去很好!发出UPDATE 后的表格是什么样的?
  • 我收到错误 ERROR 1093 (HY000): You can't specify target table 'table' for update in FROM 子句
  • 啊!试试update table set var1 = (select t2.var1 from table AS t2 where t2.id=2) where id=1;
  • 我似乎遇到了同样的错误......
  • 即使所有东西都有别名?

标签: mysql select sql-update set field


【解决方案1】:

MySQL 似乎对多表更新的语法有自己的想法(a/k/a UPDATE FROM)。看起来需要以下内容。除了,我没有要测试的 MySQL。

UPDATE t AS t1, t AS t2
SET t1.var1 = t2.var1
WHERE t1.id=1 AND t2.id=2;

编辑:我已将表名更改为t;我们不想要保留字。

【讨论】:

  • 在哪里指定表名?
  • 哦,在你放t的地方?
猜你喜欢
  • 2014-06-19
  • 2011-06-12
  • 1970-01-01
  • 1970-01-01
  • 2023-03-16
  • 1970-01-01
  • 1970-01-01
  • 2014-07-21
  • 2017-11-23
相关资源
最近更新 更多