Jump to content

Duvidas Com Query Mysql


Recommended Posts

Boa tarde,


estou fazendo a higienização do meu banco de dados e através do google
encontrei uma query que deleta os cadastros repetidos, porem não estou
entendendo muito bem o funcionamento desta query.


DELETE *
FROM pessoa_fisica AS p1
CROSS JOIN (
SELECT email FROM pessoa_fisica GROUP BY email HAVING COUNT(email > 1
) AS p2
USING (email)

 

Essa é a estrutura do meu banco de dados.

 

CREATE TABLE `pessoa_fisica` (
`id` int(3) NOT NULL AUTO_INCREMENT,
`nome` varchar(255) DEFAULT NULL,
`email` varchar(255) DEFAULT NULL,
`estado` varchar(255) DEFAULT NULL,
`cidade` varchar(255) DEFAULT NULL,
`fone_res` varchar(255) DEFAULT NULL,
`fone_com` varchar(255) DEFAULT NULL,
`fone_cel` varchar(255) DEFAULT NULL,
`endereco` varchar(255) DEFAULT NULL,
`numero` varchar(45) DEFAULT NULL,
`complemento` varchar(255) DEFAULT NULL,
`bairro` varchar(255) DEFAULT NULL,
`cep` varchar(255) DEFAULT NULL,
`segmento` longtext,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2053627 DEFAULT CHARSET=latin1$$



O que signica esse p1 e p2 ???

Ao executar essa query o erro gerado é esse:

Error Code: 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 '* FROM pessoa_fisica AS p1 CROSS JOIN ( SELECT email FROM
pessoa_fisica GROUP' at line 1



Grato pela ajuda
Link to comment
Share on other sites

Correto:

DELETE FROM ....

O seu esta:

DELETE * FROM

 

 Obrigado pela resposta !

 

 Eu fiz da forma que você informou, porem o sistema agora gera outro erro.

 

Error Code: 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 'AS p1  CROSS JOIN (   SELECT email FROM pessoa_fisica GROUP BY email HAVING COUN' at line 1

Grato

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...