Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

mmb

Problema com update usando IN

Recommended Posts

Tenho a seguinte query:

UPDATE players SET rank_id IN (SELECT id FROM guild_ranks WHERE guild_id = '$gid' AND `level` = '4') WHERE rank_id IN (SELECT id FROM guild_ranks WHERE guild_id = '$gid' AND `level` = '1')

 

Mas está dando o seguinte erro:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IN (SELECT id FROM guild_ranks WHERE guild_id = '1' AND `level` = '4') WHERE ran' at line 1

Como devo proceder para solucionar este erro?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Minha intenção é retornar o id da seguinte query

SELECT id FROM guild_ranks WHERE guild_id = '$gid' AND `level` = '4'

Eu preciso do id que ele vai retornar, pois como esse id é diferente essa query deveria pegar esse numero e por no update ;x

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então você tem que usar com o operador de atribuição, como se fosse qualquer valor, e a query entre parênteses, onde essa deve retornar apenas 1 registro.

 

Exemplo:

 

UPDATE players SET rank_id = (SELECT id FROM guild_ranks WHERE guild_id = '$gid' AND `level` = '4' LIMIT 1) 
WHERE rank_id IN (SELECT id FROM guild_ranks WHERE guild_id = '$gid' AND `level` = '1')

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.