Ir para conteúdo
View in the app

A better way to browse. Learn more.

Portal do Host

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Duvidas Com Query Mysql

Featured Replies

Postado

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

Postado

@abobre,

 

seria bom se pudesse disponibilizar a estrutura da tabela pessoa_fisica do Banco de dados pra gente olhar certinho :D

 

Abraço


Postado
  • Autor

@abobre,

 

seria bom se pudesse disponibilizar a estrutura da tabela pessoa_fisica do Banco de dados pra gente olhar certinho biggrin.png

 

Abraço

 Obrigado pela resposta, já inclui a estrutura no primeiro tópico !

 

 

 grato



Postado

 Obrigado pela resposta, já inclui a estrutura no primeiro tópico !

 

 

 grato

 

No caso, você quer deletar todos cadastros com mesmo e-mail ou mesmo nome?




Postado
  • Autor

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


Postado

Prezado,

 

faça com 2 querys, uma para selecionar e outra pra apagar. Tente isso para selecionar os repetidos:

 

SELECT email, COUNT(1) FROM pessoa_fisica BY email HAVING COUNT(1) > 1

 

 

Abraço


Visitante
Este tópico está impedido de receber novos posts.

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Informação Importante

Concorda com os nossos termos?

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.