[英]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.