小编典典

从同一表中选择作为插入或更新

sql

显然,以下是不正确的。

INSERT INTO `aTable` (`A`,`B`) VALUES((SELECT MAX(`A`) FROM `aTable`)*2),'name');

我得到的价值:

SQL查询:

INSERT INTO `aTable` (`A`, `B` )
VALUES 
(
  (
   SELECT MAX(`A`)
   FROM `aTable`
  ) *2
 , 'name'
)

MySQL说:

1093-您无法在FROM子句中指定目标表’aTable’用于更新

因此,我试图制作一个位图表,每一行对应一个位,并具有一个“ map”值。

要插入表中,我不想执行两个查询,而是想执行一个查询。我应该怎么做?

没有人对此发表评论,但是由于我正在尝试制作位图,因此应该是* 2而不是^ 2,是我的错误,请注意,这就是为什么评论经常说^
2的原因,这是评论者版本中的错误读。


阅读 202

收藏
2021-04-07

共1个答案

小编典典

尝试:

insert into aTable select max(a)^2, 'name' from aTable;

或者

insert into aTable select max(a)^2, 'name' from aTable group by B;

如果需要加入,可以执行以下操作:

insert into aTable select max(a)^2, 'name' from aTable, bTable;

我的“服务器版本”是“ 5.0.51b-community-nt MySQL社区版(GPL)”

2021-04-07