MYSQL - EXCLUIR REGISTROS REPETIDOS
Olá pessoal!!
Preciso pegar todos os registros de uma tabela excluindo registros repetidos de concatenando algumas colunas especÃficas.
Ex:
SELECT * FROM 'Tabela' WHERE [Ô] a concatenização de 'Bairro', [ô]Rua[ô], [ô]Numero[ô] não apareçam em duplicidade[Ô]
Como faço isso?
Preciso pegar todos os registros de uma tabela excluindo registros repetidos de concatenando algumas colunas especÃficas.
Ex:
SELECT * FROM 'Tabela' WHERE [Ô] a concatenização de 'Bairro', [ô]Rua[ô], [ô]Numero[ô] não apareçam em duplicidade[Ô]
Como faço isso?
Acho que você precisa é de um SELECT DISTINCT.
Abraços.
Abraços.
Tente assim.
DELETE * FROM SuaTab WHERE Id NOT IN (SELECT MAX(Id) As IdMaximo FROM SuaTab GROUP BY Bairro, Rua, Numero )
DELETE * FROM SuaTab WHERE Id NOT IN (SELECT MAX(Id) As IdMaximo FROM SuaTab GROUP BY Bairro, Rua, Numero )
Acho que ele não quer apagar os dados do banco, apenas não quer que apareça no SELECT. Caso eu esteja correto, vai no SELECT DISTINCT.
Agora, se você realmente quer excluir os dados do banco de dados, aà vai na do Omar2011.
Agora, se você realmente quer excluir os dados do banco de dados, aà vai na do Omar2011.
Depois de verifica novamente na leitura do tópico é[txt-color=#e80000] Vero.[/txt-color]
Olá senhores!! O DS2T está certo ao dizer
O que não ficou claro foi o tÃtulo do tópico. Quando me referi a excluir, estava querendo dizer ignorar. Vou tentar corrigir mas acho que não consigo mais alterar o tópico.
Com relação ás respostas, vou analisar de dou retorno.
Por enquanto MUITO OBRIGADO A TODOS.
Citação:[Ô]Acho que ele não quer apagar os dados do banco, apenas não quer que apareça no SELECT[Ô]
O que não ficou claro foi o tÃtulo do tópico. Quando me referi a excluir, estava querendo dizer ignorar. Vou tentar corrigir mas acho que não consigo mais alterar o tópico.
Com relação ás respostas, vou analisar de dou retorno.
Por enquanto MUITO OBRIGADO A TODOS.
Não estou conseguindo o que quero.
Preciso que o select exiba todas as colunas, só não quero que repitam registros com mesmo Bairro, Rua e Número.
Tentei juntar a dica de DS2T e Omar no seguinte código:
SELECT * FROM Tabela WHERE ID not in (SELECT DISTINCT ID, Bairro, Rua, Numero from Tabela)
Tá dando erro: #1241 - Operand should contain 1 column(s)
O que está errado?
Preciso que o select exiba todas as colunas, só não quero que repitam registros com mesmo Bairro, Rua e Número.
Tentei juntar a dica de DS2T e Omar no seguinte código:
SELECT * FROM Tabela WHERE ID not in (SELECT DISTINCT ID, Bairro, Rua, Numero from Tabela)
Tá dando erro: #1241 - Operand should contain 1 column(s)
O que está errado?
Colega MLALEX,
Tente assim.
Tente assim.
SELECT DISTINCT Bairro, Rua, Numero from Tabela Group By Bairro, Rua, Numero Order By Bairro, Rua, Numero
Funcionou beleza Sinclair!! Agora me permita entender o código. O que fez com que os registros repetidos não fossem exibidos é o [Ô]Group By[Ô]?? Apenas isso??
Colega MLALEX,
Quase isto... Não há como explicar em maiores detalhes em poucas linhas, estenderia muito o texto, mas em linhas gerais, seria assim:
O [Ô]distinct[Ô] faz com que os registros tenham distinção, ou seja, não sejam exibidos os repetidos. Na lista abaixo:
1
2
2
3
O Select resultaria: 1, 2, 2, 3
O Select Distinct resultaria: 1, 2, 3
O [Ô]2[Ô] apenas uma vez porque é solicitado [Ô]distintivamente[Ô].
Quando você tiver apenas uma coluna não haverá necessidade de Group By, porque o grupo só poderia ser por aquela coluna mesmo. Quando há mais de uma coluna, então a distinção precisa ser agrupada pelo conjunto de colunas (o resultado que pareceu ser o que você queria).
Tudo de bom.
Citação:Funcionou beleza Sinclair!! Agora me permita entender o código. O que fez com que os registros repetidos não fossem exibidos é o [Ô]Group By[Ô]?? Apenas isso??
Quase isto... Não há como explicar em maiores detalhes em poucas linhas, estenderia muito o texto, mas em linhas gerais, seria assim:
O [Ô]distinct[Ô] faz com que os registros tenham distinção, ou seja, não sejam exibidos os repetidos. Na lista abaixo:
1
2
2
3
O Select resultaria: 1, 2, 2, 3
O Select Distinct resultaria: 1, 2, 3
O [Ô]2[Ô] apenas uma vez porque é solicitado [Ô]distintivamente[Ô].
Quando você tiver apenas uma coluna não haverá necessidade de Group By, porque o grupo só poderia ser por aquela coluna mesmo. Quando há mais de uma coluna, então a distinção precisa ser agrupada pelo conjunto de colunas (o resultado que pareceu ser o que você queria).
Tudo de bom.
Tópico encerrado , respostas não são mais permitidas