将随机结果编号更新为相同的编号结果

时间:2020-01-30 16:50:59

标签: mysql sql mariadb

我正在尝试从另一个表更新列,这意味着:

SELECT DISTINCT id FROM creature WHERE map = 389;

此SQL将给我这个结果:

11323
11322
11324
11520
11321

我想要更新的是生物模板战利品= 11323,其中条目= 11323,因此操作如下:

UPDATE creature_template SET lootid = 11323 WHERE entry = 11323

我已经尝试过:

UPDATE creature_template SET lootid = 
    (SELECT DISTINCT id
    FROM creature
    WHERE map = 389) WHERE lootid = entry;

我确定这是不正确的,只是因为这不是逻辑,但却找不到逻辑答案。

即使REPLACE也可以代替UPDATE起作用,所以任何东西都可以起作用。

1 个答案:

答案 0 :(得分:1)

您需要JOINUPDATE

UPDATE creature_template ct 
     INNER JOIN creature c
     ON c.id = ct.entry 
     SET ct.lootid  = c.id
WHERE c.map = 389;