merlinus 1 Denunciar post Postado Julho 14, 2011 estou precisando visualizar todos os registros que tenham um determinado campo duplicados, pesquisando cheguei a seguinte forma: SELECT * FROM tabmaterial GROUP BY `codigo` HAVING COUNT(*) > 1 consegui visualizar mas ele esta retornando apenas uma das linhas duplicadas e não ambas, eu preciso que me de todas as linhas. Pesquisando mas um pouco cheguei a sugestão de colocar uma subquery, mas ao tentar usar o exemplo que deram: SELECT * FROM tabmaterial WHERE `codigo` IN (SELECT `codigo` FROM tabmaterial GROUP BY `codigo` HAVING COUNT(*) > 1) entrou num loop infinito (ou assim eu imagino, ele ficou "pensando" até o tempo limite). Aonde estou errando? Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Julho 14, 2011 A tabela tabmaterial tem índice por codigo ? Quantos registros SELECT `codigo` FROM tabmaterial GROUP BY `codigo` HAVING COUNT(*) > 1 retorna ? Quantos registros tem tabmaterial ? ----- A query SELECT * FROM tabmaterial WHERE `codigo` IN (SELECT `codigo` FROM tabmaterial GROUP BY `codigo` HAVING COUNT(*) > 1) está correta, o problema pode ser o quantidade de registros tratados. Compartilhar este post Link para o post Compartilhar em outros sites
merlinus 1 Denunciar post Postado Julho 14, 2011 A tabela não tem nenhum índice São atualmente 11,9311 registros. a Query: SELECT `codigo` FROM tabmaterial GROUP BY `codigo` HAVING COUNT(*) > 1 retorna 37 registros. sendo que tem cerca de 50 copias e o restante 2 então equivalem a aproximadamente 122 registros que estou procurando. estou executando as querys atraves de do phpmyadmin, pode ser esse o problema? ----------- Aparentemente sim, seguindo sua dica, e sabendo que a query estava certa, executei a query do pronpt do windwos (o coisinha feia) e deu certo. No phpAdmin depois que indexei o campo tb deu. Muito obrigado Resolvido Compartilhar este post Link para o post Compartilhar em outros sites