Web 2.0 Seminários

03 de maio de 2008

Mysql enganam para eliminar postos de Wordpress duplicados

Posto no correio por: admin em: wordpress wordpress

Recentemente bati na preocupação com uma instalação minha Wordpress, onde uma escrita feita em casa foi totalmente ao mar, e nunca deixou de correr, acrescentando postos ao banco de dados. Durante alguns dias ele acrescentou perto de 93.000 postos, dos quais todos foram duplicados.

Depois um bocado da procura encontrei o problema, mas entrar no banco de dados para limpar foi um bocado de um problema, desde que a escrita ainda corria. Tive de retirar a escrita totalmente do meu instalar para pará-lo!

Deixaram-me agora com 96.000 algo põe no correio, dos quais eu sabia aproximadamente 93.000 foram duplicados! Como depurar aqueles? Posso usar a aproximação manual, na qual comecei, mas logo realizei que eu seria velho e cinzento antes que isto fixasse o problema. I could use the manual approach, which I started on, but I soon realised I would be old and grey before that fixed the problem.

Um bocado de Google que procura (onde começar mais a sua pesquisa?) encontrei que uma escrita elegante ajudava com exatamente este problema:

DELETE bad_rows.*
from wp_posts as bad_rows
inner join (
select post_title, MIN(id) as min_id
from wp_posts
group by post_title
having count(*) > 1
) as good_rows on good_rows.post_title = bad_rows.post_title
and good_rows.min_id <> bad_rows.id

Esta solução foi considerada no fórum de suporte de Wordpress.org

Isto resolveu o problema, e o meu blog está atuando agora normalmente novamente.

P.s. lembram-se de suportar o seu banco de dados antes de fazer isto!

Leia mais sobre este tópico aqui: PHP Promovido / Interação de MySQL.
Etiquetas: blog, ajuda, mysql, phpmyadmin, ponta, truque, wordpress

Postos relacionados

Nenhuma Resposta "a Mysql engana para eliminar postos de Wordpress duplicados"

Forma de Comentário

Anunciantes