繁体   English   中英

SQL查询错误-从具有条件的表中选择

[英]SQL query error - Selecting from table with conditions

我目前正在尝试弄清楚如何进行适合自己需求的查询。 它有选择modelid从生物表其中ID = 553,并更新creature_template表列displayid与已经选择的ID,但只有当进入= 100098。

我写了这个SQL:

UPDATE `creature_template`
    SET `modelid1` = (SELECT `modelid`
                     FROM `creature`
                     WHERE `map` = 553)
    WHERE `entry` = 100098

但是,当我将其添加到数据库中时,出现此错误:

子查询返回1行以上。

您的子查询返回多个值。 这意味着creature中的map字段等于553的行多于该行。此查询将仅更新该行中的一行。

UPDATE `creature_template`
    SET `modelid1` = (SELECT `modelid`
                     FROM `creature`
                     WHERE `map` = 553
                     LIMIT 1
    )
    WHERE `entry` = 100098

但是,如果您需要使用map = 553更新所有行,则应使用IN原因:

UPDATE `creature_template`
    SET `modelid1` IN (SELECT `modelid`
                     FROM `creature`
                     WHERE `map` = 553
    )
    WHERE `entry` = 100098

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM