Jump to content


Photo

Eliminar Registros Iguais


  • Faça o login para participar
10 replies to this topic

#1 giselelm

giselelm

    12 Horas

  • Usuários
  • 173 posts
  • Sexo:Feminino
  • Localidade:Curitiba

Posted 17/09/2007, 15:26

Boa tarde

Um cliente me passou uma tabela para atualizar os cadastros dos seus clientes. Notei que existem muitos registros duplicados, existe algum comando que eu possa fazer para ele eliminar um dos registros caso tenha mais de um igual?

ex: procuro por rogerio da silva e ele encontra 5
tem como eliminar quatro e deixar apenas um?

#2 hostdesigner

hostdesigner

    Super Veterano

  • Usuários
  • 2910 posts
  • Sexo:Masculino
  • Localidade:Quirinópolis-GO
  • Interesses:Programação, Mulheres, Diversão, Mulheres, Música, Mulheres, Meu Carro, Mais mulheres, Internet, Outras Mulheres, Quase por último PAZ e por ultimo Outras Váááárias Mulheres...

Posted 17/09/2007, 15:43

Bom, se formos analisar pela parte real do problema, podem existir várias pessoas com o mesmo nome, o que vai mudar é o CPF, RG, endereço e filiação.

Diga como está a estrutura da tabela

Falopa!

#3 giselelm

giselelm

    12 Horas

  • Usuários
  • 173 posts
  • Sexo:Feminino
  • Localidade:Curitiba

Posted 17/09/2007, 16:09

Olá hostdesigner...

CREATE TABLE cadastro_cliente (
id int(10) unsigned NOT NULL auto_increment,
data_cadastro_cliente datetime DEFAULT '0000-00-00 00:00:00' ,
nome varchar(100) ,
telefone varchar(100) ,
celular varchar(100) ,
comercial varchar(100) ,
contato varchar(100) ,
rua varchar(100) ,
cep varchar(100) ,
bairro varchar(100) ,
cidade varchar(100) ,
estado varchar(100) ,
email varchar(100) ,
indicou varchar(100) ,
cpf_cnpj varchar(100) ,
rg varchar(100) ,
uf char(2) ,
data_nasc varchar(100) ,
login varchar(50) ,
PRIMARY KEY (id)
);

Claro a comparação precisa ser pelo cpf_cnpj mesmo...

#4 boirock

boirock

    Tecnologia para todos (agora hexa campeão)

  • Usuários
  • 1559 posts
  • Sexo:Masculino
  • Localidade:Curitiba - PR
  • Interesses:PostgreSQL - PHP

Posted 17/09/2007, 16:16

Poxa... qto varchar de 100!
Bom... eu na minha humilde ignorância pergunto:
Já que (parece) cpf_cnpj é um valor único, não poderia ser a sua PK (mesmo eu achando que não é a prática mais adequada)?
E outra... como você está fazendo a importação dos dados?
Eu faria isso que você quer na importação ao invés de importar tudo e depois quebrar a cabeça excluindo as duplicidades...

[] Rafael :boxing:

#5 hostdesigner

hostdesigner

    Super Veterano

  • Usuários
  • 2910 posts
  • Sexo:Masculino
  • Localidade:Quirinópolis-GO
  • Interesses:Programação, Mulheres, Diversão, Mulheres, Música, Mulheres, Meu Carro, Mais mulheres, Internet, Outras Mulheres, Quase por último PAZ e por ultimo Outras Váááárias Mulheres...

Posted 17/09/2007, 16:36

O interessante seria você fazer o seguinte... Estou imaginando que a tabela que você tem é uma tabela de banco de dados...

Antes de exportar os dados faça a seguinte consulta
SELECT DISTINCT( cpf_cnpj ), nome, telefone FROM cadastro
Isso trará a você os registros filtrando as duplicidades do campo cpf_cnpj, sendo assim, será retornado apelas um registro de cada mesmo havendo duplicidades.

Falopa!

Edição feita por: hostdesigner, 17/09/2007, 16:36.


#6 Felipe Pena

Felipe Pena

    O temor do Senhor é o princípio da sabedoria

  • Ex-Admins
  • 6441 posts
  • Sexo:Masculino

Posted 19/09/2007, 15:13

O interessante seria você fazer o seguinte... Estou imaginando que a tabela que você tem é uma tabela de banco de dados...

Antes de exportar os dados faça a seguinte consulta

SELECT DISTINCT( cpf_cnpj ), nome, telefone FROM cadastro
Isso trará a você os registros filtrando as duplicidades do campo cpf_cnpj, sendo assim, será retornado apelas um registro de cada mesmo havendo duplicidades.

Falopa!


Não fará distinção apenas do campo cpf_cnpj, a aceitação desta sintaxe causa uma ilusão. Pois na verdade, a distinção é feita dos três campos citados no SELECT. Para fazer de um só campo, você teria que usar GROUP BY.

Segue uns testes:
mysql> insert into CADASTRO values (1, 2, 3), (1, 3, 4);
Query OK, 2 rows affected (0.23 sec)
Records: 2  Duplicates: 0  Warnings: 0

mysql> select distinct (a), b, c from CADASTRO;
+------+------+------+
| a	| b	| c	|
+------+------+------+
|	1 |	2 |	3 | 
|	1 |	3 |	4 | 
+------+------+------+
2 rows in set (0.24 sec)

mysql> select distinct a, b, c from CADASTRO;
+------+------+------+
| a	| b	| c	|
+------+------+------+
|	1 |	2 |	3 | 
|	1 |	3 |	4 | 
+------+------+------+
2 rows in set (0.24 sec)

mysql> select distinct a, (b), c from CADASTRO;
+------+------+------+
| a	| b	| c	|
+------+------+------+
|	1 |	2 |	3 | 
|	1 |	3 |	4 | 
+------+------+------+
2 rows in set (0.31 sec)

Felipe Pena
[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29

#7 hostdesigner

hostdesigner

    Super Veterano

  • Usuários
  • 2910 posts
  • Sexo:Masculino
  • Localidade:Quirinópolis-GO
  • Interesses:Programação, Mulheres, Diversão, Mulheres, Música, Mulheres, Meu Carro, Mais mulheres, Internet, Outras Mulheres, Quase por último PAZ e por ultimo Outras Váááárias Mulheres...

Posted 19/09/2007, 15:22

@ ECLESIASTES
Agora que você falou... realmente, a minha sugestão não resolve o problema, já que ao informar três campos o DISTINCT irá comparar se os três campos possuem valores iguais. Que vacilo o meu! :unsure:
SELECT cpf_cnpj, nome, telefone FROM cadastro GROUP BY cnpj_cpf ORDER BY nome ASC
O correto seria assim, acrescentei também a ordenação dos registros pelo nome.

Falopa!

#8 Miguceamma

Miguceamma

    MiguPenjisse

  • Usuários
  • 13201 posts

Posted 26/09/2017, 07:03

Phenergan Overnight Delivery Ventolin Canada Order Albendazole Online generic cialis Does Amoxicillin Help Inected Bud Bites Levitra 5 Mg Nebenwirkungen
Real Levaquin Discount Low Price Online cialis price Orlistat Online
New Healthy Man Bbb Rating buy cialis Cialis E Donne

#9 Miguceamma

Miguceamma

    MiguPenjisse

  • Usuários
  • 13201 posts

Posted 10/10/2017, 19:39

Keflex Breast Cyst Priligy Mercadolibre Venezuela Le Viagra Est cialis online Cialis Viagra Achat Terbenifine And Keflex Fast Quick Delivered Viagra
Viagra Combo Packs viagra Discovering Amoxil Cod Provera Ralovera Best Website In Internet Cephalexin Sensitivities
Priligy Valor Where Can I Buy Mirtazapine Cheap buy viagra online Levitra Generic Cheap

#10 Miguceamma

Miguceamma

    MiguPenjisse

  • Usuários
  • 13201 posts

Posted 28/10/2017, 08:32

Buy Cheap Lasix Propecia Liver Saw Palmetto online pharmacy Effetti Collaterali Del Cialis Generico Cephalexin And Itp
Cheapest Nonprescription Bactrim Viagra Pharmacy Withoug Prescription Propecia Dose Testicular Pain viagra Levitra Preis 10 Mg
Nombres Women Argentina Levitra Da 20 Mg Order Cipla Drugs buy viagra Walgreens Cialis Prices Finasteride 1mg Generic Propecia Levitra Food

#11 Miguceamma

Miguceamma

    MiguPenjisse

  • Usuários
  • 13201 posts

Posted 08/11/2017, 10:15

Viagra Cialis Kaufen Wien viagra Buy Isotretinoin Progesterone Cheap On Line Store
Real Levitra Amoxicillin Normal Dose Amoxicillin Tanning Bed viagra Xenical Orlistat
Achat Viagra Sur Internet Forum cialis Venta Propecia Finasteride




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq