You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

更新共享主人的宠物数据时遇Error Code:1241错误求助

修正SQL语句解决Error Code: 1241问题

报错原因很明确:你写的嵌套子查询里,最内层的SELECT返回了Phone_owner和Total两列数据,但IN操作符只允许右侧子查询返回单列值,所以触发了Operand should contain 1 column(s)错误。

下面是几种可行的修正方案:

方案一:调整嵌套子查询的返回列

只保留Phone_owner列作为IN操作符的匹配值:

update Pets
set multiple = 1
where Phone_owner in (
    SELECT Phone_owner
    FROM (
        SELECT Phone_owner, COUNT(*) Total
        FROM Pets
        GROUP BY Phone_owner
        HAVING COUNT(*) > 1
        ) a
    );

方案二:简化子查询结构(更高效简洁)

去掉多余的嵌套层,直接用单层子查询返回目标列:

update Pets
set multiple = 1
where Phone_owner in (
    SELECT Phone_owner
    FROM Pets
    GROUP BY Phone_owner
    HAVING COUNT(*) > 1
);

可选方案:用JOIN方式实现更新(大场景性能更优)

如果数据量较大,使用JOIN的更新方式通常比IN子查询效率更高:

UPDATE Pets p
JOIN (
    SELECT Phone_owner
    FROM Pets
    GROUP BY Phone_owner
    HAVING COUNT(*) > 1
) o ON p.Phone_owner = o.Phone_owner
SET p.multiple = 1;

内容的提问来源于stack exchange,提问作者Skavius

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 22:25:41