更新了MySQL查询中的连接和排名不起作用
我尝试了很多使用前面问题的答案的查询,但似乎无法使其工作 当我运行这个查询(这是我想要的)时,我得到6个结果,第一个collen是a想要更新的值更新了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
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的错误。在其他服务器上使用相同类型的查询