更新了MySQL查询中的连接和排名不起作用

更新了MySQL查询中的连接和排名不起作用,mysql,join,rank,Mysql,Join,Rank,我尝试了很多使用前面问题的答案的查询,但似乎无法使其工作 当我运行这个查询(这是我想要的)时,我得到6个结果,第一个collen是a想要更新的值 select ranks.rank,ranks.vad as ran,id.* from ideias id inner JOIN ( SELECT p.codigo as vad, @curRank := @curRank + 1 AS rank FROM ideias p JOIN (SELECT @curRank

我尝试了很多使用前面问题的答案的查询,但似乎无法使其工作

当我运行这个查询(这是我想要的)时,我得到6个结果,第一个collen是a想要更新的值

select ranks.rank,ranks.vad as ran,id.* from ideias id
inner JOIN 
(
    SELECT p.codigo as vad,
    @curRank := @curRank + 1 AS rank
    FROM ideias p
    JOIN (SELECT @curRank := 0) r
        where concat(DATE_FORMAT(p.data_envio,'%Y'),'-',DATE_FORMAT(p.data_envio,'%m'))='2016-09'
            or concat(DATE_FORMAT(p.data_nova_chance,'%Y'),'-',DATE_FORMAT(p.data_nova_chance,'%m'))='2016-09' 
            and p.Nota is not null
        ORDER BY p.Nota DESC , p.data_envio ASC, p.retorno_esperado ASC
) ranks ON ranks.vad = id.codigo
where id.Nota is not null
结果是:

如果您查看字段
rank
codigo
,这是正确的,这是我想要的更新 但是,当我运行此查询时:

UPDATE   ideias id
inner JOIN 
(
    SELECT p.codigo as vad, @curRank := @curRank + 1 AS rank
        FROM ideias p
        JOIN (SELECT @curRank := 0) r
            where concat(DATE_FORMAT(p.data_envio,'%Y'),'-',DATE_FORMAT(p.data_envio,'%m'))='2016-09'
                or concat(DATE_FORMAT(p.data_nova_chance,'%Y'),'-',DATE_FORMAT(p.data_nova_chance,'%m'))='2016-09' 
                and p.Nota is not null
            ORDER BY p.Nota DESC , p.data_envio ASC, p.retorno_esperado ASC
) ranks ON ranks.vad = id.codigo
SET id.Posicao = ranks.rank
where id.Nota is not null
更新错误,请查看带有结果的图片:


面对同样的问题。我不知道为什么会发生这种情况,因为它在批量更新时设置了codigo的自动增量键。不确定,但这是mysql的错误。在其他服务器上使用相同类型的查询