mmb 0 Denunciar post Postado Janeiro 25, 2008 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
mmb 0 Denunciar post Postado Janeiro 25, 2008 Alguem pode ajudar? Compartilhar este post Link para o post Compartilhar em outros sites
mmb 0 Denunciar post Postado Janeiro 26, 2008 Desculpem o flood mas ninguem? Compartilhar este post Link para o post Compartilhar em outros sites
Eclesiastes 2 Denunciar post Postado Janeiro 26, 2008 Não faz sentido um IN onde você colocou. Qual é a sua intenção com isso? :) Compartilhar este post Link para o post Compartilhar em outros sites
mmb 0 Denunciar post Postado Janeiro 26, 2008 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
Eclesiastes 2 Denunciar post Postado Janeiro 26, 2008 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