Mysql 选择id列表并更新这些行

Mysql 选择id列表并更新这些行,mysql,sql,Mysql,Sql,我有以下MySQL语句: UPDATE xxx_iop_user_plans SET state = 1, accepted = 1 WHERE id IN (SELECT iup1.id FROM xxx_iop_user_plans iup1 INNER JOIN xxx_iop_user_ed iue ON iup1.user_id = iue.user_id WHERE iue.parent_id = 44 AND iup1.iop_id = 11) 我应该如何更新此语句以更新从SEL

我有以下MySQL语句:

UPDATE xxx_iop_user_plans
SET state = 1, accepted = 1
WHERE id IN (SELECT iup1.id FROM xxx_iop_user_plans iup1
INNER JOIN xxx_iop_user_ed iue ON iup1.user_id = iue.user_id
WHERE iue.parent_id = 44 AND iup1.iop_id = 11)

我应该如何更新此语句以更新从SELECT语句返回的列表中存在id号的行?

我希望您的update语句能够做到这一点。如果它没有更新所有这些ID,它在做什么?您可以重新组织查询,将select子查询放入from子句中:

UPDATE x 
SET state = 1, accepted = 1
FROM xxx_iop_user_plans x 
    INNER JOIN (
        SELECT iup1.id 
        FROM xxx_iop_user_plans iup1
            INNER JOIN xxx_iop_user_ed iue ON iup1.user_id = iue.user_id
        WHERE iue.parent_id = 44 AND iup1.iop_id = 11
    ) y ON x.ID = y.ID
但我不希望这与你已经拥有的有任何不同。还是试试看。

您应该使用MySQL,如下所示:

UPDATE xxx_iop_user_plans
  INNER JOIN xxx_iop_user_ed ON xxx_iop_user_plans.user_id = xxx_iop_user_ed.user_id
SET state = 1, accepted = 1
WHERE xxx_iop_user_ed.parent_id = 44 
  AND xxx_iop_user_plans.iop_id = 11;

您的意思是‘更新select语句返回的列表中具有id列值的每一行’?或者您正在尝试更改id列的值?